p_table <- function(tab_data, ...) {
tab_data_2 <- deparse(substitute(tab_data))
table_p <- do.call(CreateTableOne,
list(data = as.name(tab_data_2), includeNA = TRUE, ...))
table_p_out <- print(table_p,
showAllLevels = TRUE,
printToggle = FALSE)
kable(table_p_out,
align = "c")
}
uni_var <- function(test_var, data_imp) {
cat("_________________________________________________")
cat("\n")
cat(" \n##", test_var)
cat("\n")
cat("_________________________________________________")
cat("\n")
f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
as.name(test_var),
sep = " ~ " ))
data_imp_2 <- deparse(substitute(data_imp))
km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
print(km_fit)
cat("\n")
print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Univariable Cox Proportional Hazard Model for: ", test_var)
cat("\n")
cat("\n")
n_levels <- nlevels(data_imp[[test_var]])
if(n_levels == 1){
print("Only one level, no Cox model performed")
cat("\n")
} else {
cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
print(summary(cox_fit))
cat("\n")
do.call("ggforest",
list(model = cox_fit, data = as.name(data_imp_2)))
}
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
p <- do.call("ggsurvplot",
list(fit = km_fit, data = as.name(data_imp_2),
palette = "jco", censor = FALSE, legend = "right",
linetype = "strata", xlab = "Time (Months)"))
print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
"AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
"MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
"UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
"YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
"DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
"REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
"TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
"CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
"CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
"CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
"CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
"CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
"CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
"CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
"CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
"CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
"CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
"CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
"RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
"RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
"REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
"RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
"RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
"REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
"DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
"RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
"PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
"DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
"RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
"RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
"METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
"METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLextr <- read_fwf('NCDBPUF_NHLExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
breast <- read_fwf('NCDBPUF_Breast.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vulva <- read_fwf('NCDBPUF_Vulva.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vagina <- read_fwf('NCDBPUF_Vagina.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
penis <- read_fwf('NCDBPUF_Penis.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otleuk <- read_fwf('NCDBPUF_OtLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otheracuteleuk <- read_fwf('NCDBPUF_OtAcLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
ALL <- read_fwf('NCDBPUF_ALymLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast,
vulva, vagina, penis, NHLextr, otleuk, otheracuteleuk, ALL)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina,
penis, NHLextr, otleuk, otheracuteleuk, ALL)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C000",
"C001",
"C002",
"C003",
"C004",
"C005",
"C006",
"C008",
"C009",
"C019",
"C020",
"C021",
"C022",
"C023",
"C024",
"C028",
"C029",
"C030",
"C031",
"C039",
"C040",
"C041",
"C048",
"C049",
"C050",
"C051",
"C052",
"C058",
"C059",
"C060",
"C061",
"C062",
"C068",
"C069",
"C079",
"C098",
"C099",
"C111",
"C142",
"C300",
"C379",
"C420",
"C422",
"C424",
#skin/melanoma
"C440", "C441", "C442", "C443", "C444", "C445",
"C446", "C447", "C448", "C449",
#breast - nipple
"C500",
#vagina/vulva
"C510", "C511", "C512", "C518", "C519", "C529",
#penis
"C600", "C601", "C602", "C608", "C609", "C639",
"C770",
"C771",
"C772",
"C773",
"C774",
"C775",
"C778",
"C779"),
SITE_TEXT = c(
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2 External Lip: NOS",
"C00.3 Lip: Upper Mucosa",
"C00.4 Lip: Lower Mucosa",
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure",
"C00.8 Lip: Overlapping",
"C00.9 Lip NOS",
"C01.9 Tongue: Base NOS",
"C02.0 Tongue: Dorsal NOS",
"C02.1 Tongue: Border, Tip",
"C02.2 Tongue: Ventral NOS",
"C02.3 Tongue: Anterior NOS",
"C02.4 Lingual Tonsil",
"C02.8 Tongue: Overlapping",
"C02.9 Tongue: NOS",
"C03.0 Gum: Upper",
"C03.1 Gum: Lower",
"C03.9 Gum NOS",
"C04.0 Mouth: Anterior Floor",
"C04.1 Mouth: Lateral Floor",
"C04.8 Mouth: Overlapping Floor",
"C04.9 Floor of Mouth NOS",
"C05.0 Hard Palate",
"C05.1 Soft Palate NOS",
"C05.2 Uvula",
"C05.8 Palate: Overlapping",
"C05.9 Palate NOS",
"C06.0 Cheek Mucosa",
"C06.1 Mouth: Vestibule",
"C06.2 Retromolar Area",
"C06.8 Mouth: Other Overlapping",
"C06.9 Mouth NOS",
"C07.9 Parotid Gland",
"C09.8 Tonsil: Overlapping",
"C09.9 Tonsil NOS",
"C11.1 Nasopharynx: Poster Wall",
"C14.2 Waldeyer Ring",
"C30.0 Nasal Cavity",
"C37.9 Thymus",
"C42.0 Blood",
"C42.2 Spleen",
"C42.4 Hematopoietic NOS",
#skin
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS",
#breast
"C50.0 Nipple",
#vulva/vagina
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C52.9 Vagina, NOS",
#penis
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS",
"C77.0 Lymph Nodes: HeadFaceNeck",
"C77.1 Intrathoracic Lymph Nodes",
"C77.2 Intra-abdominal LymphNodes",
"C77.3 Lymph Nodes of axilla or arm ",
"C77.4 Lymph Nodes: Leg",
"C77.5 Pelvic Lymph Nodes",
"C77.8 Lymph Nodes: multiple region",
"C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE)
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS", "RAD_REGIONAL_DOSE_CGY",
"RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS",
"DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
"RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
"Community Cancer Program" = "1",
"Comprehensive Comm Ca Program" = "2",
"Academic/Research Program" = "3",
"Integrated Network Ca Program" = "4",
"Other" = "9")) %>%
mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
"New England" = "1",
"Middle Atlantic" = "2",
"South Atlantic" = "3",
"East North Central" = "4",
"East South Central" = "5",
"West North Central" = "6",
"West South Central" = "7",
"Mountain" = "8",
"Pacific" = "9",
"out of US" = "0")) %>%
mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
"Northeast" = c("1", "2"),
"South" = c("3", "7"),
"Midwest" = c("4", "5", "6"),
"West" = c("8", "9"))) %>%
mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
mutate(SEX_F = fct_recode(SEX,
"Male" = "1",
"Female" = "2")) %>%
mutate(RACE_F = fct_collapse(RACE,
"White" = c("01"),
"Black" = c("02"),
"Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
"16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
"32", "96", "97"),
"Other/Unk" = c("03", "98", "99"))) %>%
mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
"Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
"No" = c("0"),
"Unknown" = c("9"))) %>%
mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
"None" = "0",
"Private" = "1",
"Medicaid" = "2",
"Medicare" = "3",
"Other Government" = "4",
"Unknown" = "9")) %>%
mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
"Private")) %>%
mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
"Less than $38,000" = "1",
"$38,000 - $47,999" = "2",
"$48,000 - $62,999" = "3",
"$63,000 +" = "4")) %>%
mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
"21% or more" = "1",
"13 - 20.9%" = "2",
"7 - 12.9%" = "3",
"Less than 7%" = "4")) %>%
mutate(U_R_F = fct_collapse(UR_CD_13,
"Metro" = c("1", "2", "3"),
"Urban" = c("4", "5", "6", "7"),
"Rural" = c("8", "9"))) %>%
mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
All_Part_Prim = c("10", "11", "12", "13",
"14", "20", "21", "22"),
Other_Facility = c("00"))) %>%
mutate(GRADE_F = fct_recode(GRADE,
"Gr I: Well Diff" = "1",
"Gr II: Mod Diff" = "2",
"Gr III: Poor Diff" = "3",
"Gr IV: Undiff/Anaplastic" = "4",
"NA/Unkown" = "9")) %>%
mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
"N_A" = "88")) %>%
mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
"1")) %>%
mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
"N_A" = "88")) %>%
mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
"1")) %>%
mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
"N_A" = "88")) %>%
mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
"N_A" = "88")) %>%
mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
"No Residual" = "0",
"Residual, NOS" = "1",
"Microscopic Resid" = "2",
"Macroscopic Resid" = "3",
"Not evaluable" = "7",
"No surg" = "8",
"Unknown" = "9")) %>%
mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
"Yes" = c("1", "2", "3"),
"No" = c("0"),
"No surg/Unk/NA" = c("7", "8", "9"))) %>%
mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
"No_Surg_or_No_Readmit" = "0",
"Unplan_Readmit_Same" = "1",
"Plan_Readmit_Same" = "2",
"PlanUnplan_Same" = "3",
"Unknown" = "4")) %>%
mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
"None" = "0",
"Beam Radiation" = "1",
"Radioactive Implants" = "2",
"Radioisotopes" = "3",
"Beam + Imp or Isotopes" = "4",
"Radiation, NOS" = "5",
"Unknown" = "9")) %>%
mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
"Alive_30" = "0",
"Dead_30" = "1",
"Unknown" = "9")) %>%
mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
"Alive_90" = "0",
"Dead_90" = "1",
"Unknown" = "9")) %>%
mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
"Neg_LymphVasc_Inv" = "0",
"Pos_LumphVasc_Inv" = "1",
"N_A" = "8",
"Unknown" = "9")) %>%
mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
"No_Surg" = "0",
"Robot_Assist" = "1",
"Robot_to_Open" = "2",
"Endo_Lap" = "3",
"Endo_Lap_to_Open" = "4",
"Open_Unknown" = "5",
"Unknown" = "9")) %>%
mutate(All = "All") %>%
mutate(All = factor(All)) %>%
mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
"Surg performed" = "0",
"Surg not recommended" = "1",
"No surg due to pt factors" = "2",
"No surg, pt died" = "5",
"Surg rec, not done" = "6",
"Surg rec, pt refused" = "7",
"Surg rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
"Yes",
ifelse(REASON_FOR_NO_SURGERY == "9",
"Ukn",
"No"))) %>%
mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
SURGERY_YN == "No" ~ FALSE,
TRUE ~ NA)) %>%
mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
"Rad performed" = "0",
"Rad not recommended" = "1",
"No Rad due to pt factors" = "2",
"No Rad, pt died" = "5",
"Rad rec, not done" = "6",
"Rad rec, pt refused" = "7",
"Rad rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
"Yes",
ifelse(REASON_FOR_NO_RADIATION == "9",
NA,
"No"))) %>%
mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
"None or Surg or Rad" = "0",
"Rad before Surg" = "2",
"Surg before Rad" = "3",
"Rad before and after Surg" = "4",
"Intraop Rad" = "5",
"Intraop Rad plus other" = "6",
"Unknown" = "9")) %>%
mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Surg Alone",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Rad Alone",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
"No Treatment",
ifelse(RX_SUMM_SURGRAD_SEQ == "2",
"Rad then Surg",
ifelse(RX_SUMM_SURGRAD_SEQ == "3",
"Surg then Rad",
ifelse(RX_SUMM_SURGRAD_SEQ == "4",
"Rad before and after Surg",
"Other"))))))) %>%
mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
"Surg Alone",
"Surg then Rad",
"Rad Alone")) %>%
mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01", "02", "03"),
"Ukn" = c("88", "99"))) %>%
mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Surg, No rad, No Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Rad, No Surg, No Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"No Surg, No Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
"Rad then Surg, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
"Surg then Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
"Rad before and after Surg, No Chemo",
ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Surg, No rad, Yes Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Rad, No Surg, Yes Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"No Surg, No Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
"Rad then Surg, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
"Surg then Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
"Rad before and after Surg, Yes Chemo",
"Other"))))))))))))) %>%
mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
mutate(T_SIZE = ifelse(T_SIZE == 0,
"No Tumor",
ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
"< 1 cm",
ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
"1-2 cm",
ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
"2-3 cm",
ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
"3-4 cm",
ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
"4-5 cm",
ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
"5-6 cm",
ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
T_SIZE == 980 | T_SIZE == 989 |
T_SIZE == 997,
">6 cm",
ifelse(T_SIZE == 988 | T_SIZE == 999,
"NA_unk",
"Microscopic focus")))))))))) %>%
mutate(T_SIZE = factor(T_SIZE)) %>%
mutate(T_SIZE = fct_relevel(T_SIZE,
"No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
"4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
CS_METS_DX_BONE == "1" ~ "Bone",
CS_METS_DX_BRAIN == "1" ~ "Brain",
CS_METS_DX_LIVER == "1" ~ "Liver",
TRUE ~ "None/Other/Unk/NA")) %>%
mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
"Non-Expansion State" = "0",
"Jan 2014 Expansion States" = "1",
"Early Expansion States (2010-13)" = "2",
"Late Expansion States (> Jan 2014)" = "3",
"Suppressed for Ages 0 - 39" = "9")) %>%
mutate(EXPN_GROUP = case_when(MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in%
c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013")) %>%
mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>%
mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE,
ifelse(CHEMO_YN == "Ukn", NA,
TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
"HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
"CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
"BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
"MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
mutate_at(fact_vars_2, funs(factor(.)))
Table of variables for all cases:
p_table(data,
vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY", "AGE", "AGE_F", "AGE_40",
"SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F",
"INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
"SITE_TEXT", "BEHAVIOR", "GRADE_F",
"DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
"READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS",
"LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
"SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
"MEDICAID_EXPN_CODE", "EXPN_GROUP"))
| n |
|
11998 |
| FACILITY_TYPE_F (%) |
Community Cancer Program |
409 ( 3.4) |
|
Comprehensive Comm Ca Program |
1903 ( 15.9) |
|
Academic/Research Program |
6745 ( 56.2) |
|
Integrated Network Ca Program |
705 ( 5.9) |
|
NA |
2236 ( 18.6) |
| FACILITY_LOCATION_F (%) |
New England |
683 ( 5.7) |
|
Middle Atlantic |
2098 ( 17.5) |
|
South Atlantic |
2063 ( 17.2) |
|
East North Central |
1653 ( 13.8) |
|
East South Central |
531 ( 4.4) |
|
West North Central |
646 ( 5.4) |
|
West South Central |
559 ( 4.7) |
|
Mountain |
475 ( 4.0) |
|
Pacific |
1054 ( 8.8) |
|
NA |
2236 ( 18.6) |
| FACILITY_GEOGRAPHY (%) |
Northeast |
2781 ( 23.2) |
|
South |
2622 ( 21.9) |
|
Midwest |
2830 ( 23.6) |
|
West |
1529 ( 12.7) |
|
NA |
2236 ( 18.6) |
| AGE (mean (sd)) |
|
55.78 (18.32) |
| AGE_F (%) |
(0,54] |
5207 ( 43.4) |
|
(54,64] |
2666 ( 22.2) |
|
(64,74] |
2259 ( 18.8) |
|
(74,100] |
1861 ( 15.5) |
|
NA |
5 ( 0.0) |
| AGE_40 (%) |
(0,40] |
2371 ( 19.8) |
|
(40,100] |
9622 ( 80.2) |
|
NA |
5 ( 0.0) |
| SEX_F (%) |
Male |
6959 ( 58.0) |
|
Female |
5039 ( 42.0) |
| RACE_F (%) |
White |
9070 ( 75.6) |
|
Black |
2031 ( 16.9) |
|
Other/Unk |
465 ( 3.9) |
|
Asian |
432 ( 3.6) |
| HISPANIC (%) |
No |
10462 ( 87.2) |
|
Yes |
961 ( 8.0) |
|
Unknown |
575 ( 4.8) |
| INSURANCE_F (%) |
Private |
6315 ( 52.6) |
|
None |
497 ( 4.1) |
|
Medicaid |
842 ( 7.0) |
|
Medicare |
3854 ( 32.1) |
|
Other Government |
172 ( 1.4) |
|
Unknown |
318 ( 2.7) |
| INCOME_F (%) |
Less than $38,000 |
2009 ( 16.7) |
|
$38,000 - $47,999 |
2457 ( 20.5) |
|
$48,000 - $62,999 |
3165 ( 26.4) |
|
$63,000 + |
4294 ( 35.8) |
|
NA |
73 ( 0.6) |
| EDUCATION_F (%) |
21% or more |
1977 ( 16.5) |
|
13 - 20.9% |
2912 ( 24.3) |
|
7 - 12.9% |
3791 ( 31.6) |
|
Less than 7% |
3252 ( 27.1) |
|
NA |
66 ( 0.6) |
| U_R_F (%) |
Metro |
10196 ( 85.0) |
|
Urban |
1306 ( 10.9) |
|
Rural |
154 ( 1.3) |
|
NA |
342 ( 2.9) |
| CROWFLY (mean (sd)) |
|
40.79 (120.92) |
| CDCC_TOTAL_BEST (%) |
0 |
10671 ( 88.9) |
|
1 |
1011 ( 8.4) |
|
2 |
222 ( 1.9) |
|
3 |
94 ( 0.8) |
| SITE_TEXT (%) |
C00.0 External Lip: Upper NOS |
0 ( 0.0) |
|
C00.1 External Lip: Lower NOS |
0 ( 0.0) |
|
C00.2 External Lip: NOS |
0 ( 0.0) |
|
C00.3 Lip: Upper Mucosa |
0 ( 0.0) |
|
C00.4 Lip: Lower Mucosa |
0 ( 0.0) |
|
C00.5 Lip: Mucosa NOS |
0 ( 0.0) |
|
C00.6 Lip: Commissure |
0 ( 0.0) |
|
C00.8 Lip: Overlapping |
0 ( 0.0) |
|
C00.9 Lip NOS |
0 ( 0.0) |
|
C01.9 Tongue: Base NOS |
5 ( 0.0) |
|
C02.0 Tongue: Dorsal NOS |
0 ( 0.0) |
|
C02.1 Tongue: Border, Tip |
1 ( 0.0) |
|
C02.2 Tongue: Ventral NOS |
0 ( 0.0) |
|
C02.3 Tongue: Anterior NOS |
0 ( 0.0) |
|
C02.4 Lingual Tonsil |
0 ( 0.0) |
|
C02.8 Tongue: Overlapping |
0 ( 0.0) |
|
C02.9 Tongue: NOS |
1 ( 0.0) |
|
C03.0 Gum: Upper |
1 ( 0.0) |
|
C03.1 Gum: Lower |
0 ( 0.0) |
|
C03.9 Gum NOS |
1 ( 0.0) |
|
C04.0 Mouth: Anterior Floor |
0 ( 0.0) |
|
C04.1 Mouth: Lateral Floor |
0 ( 0.0) |
|
C04.9 Floor of Mouth NOS |
1 ( 0.0) |
|
C05.0 Hard Palate |
15 ( 0.1) |
|
C05.1 Soft Palate NOS |
9 ( 0.1) |
|
C05.2 Uvula |
0 ( 0.0) |
|
C05.8 Palate: Overlapping |
2 ( 0.0) |
|
C05.9 Palate NOS |
4 ( 0.0) |
|
C06.0 Cheek Mucosa |
3 ( 0.0) |
|
C06.1 Mouth: Vestibule |
2 ( 0.0) |
|
C06.2 Retromolar Area |
0 ( 0.0) |
|
C06.8 Mouth: Other Overlapping |
0 ( 0.0) |
|
C06.9 Mouth NOS |
1 ( 0.0) |
|
C07.9 Parotid Gland |
1 ( 0.0) |
|
C09.8 Tonsil: Overlapping |
1 ( 0.0) |
|
C09.9 Tonsil NOS |
9 ( 0.1) |
|
C11.1 Nasopharynx: Poster Wall |
2 ( 0.0) |
|
C14.2 Waldeyer Ring |
4 ( 0.0) |
|
C30.0 Nasal Cavity |
572 ( 4.8) |
|
C37.9 Thymus |
4 ( 0.0) |
|
C42.0 Blood |
0 ( 0.0) |
|
C42.2 Spleen |
4 ( 0.0) |
|
C42.4 Hematopoietic NOS |
0 ( 0.0) |
|
C44.0 Skin of lip, NOS |
38 ( 0.3) |
|
C44.1 Eyelid |
31 ( 0.3) |
|
C44.2 External ear |
51 ( 0.4) |
|
C44.3 Skin of ear and unspecified parts of face |
721 ( 6.0) |
|
C44.4 Skin of scalp and neck |
416 ( 3.5) |
|
C44.5 Skin of trunk |
1762 ( 14.7) |
|
C44.6 Skin of upper limb and shoulder |
866 ( 7.2) |
|
C44.7 Skin of lower limb and hip |
1210 ( 10.1) |
|
C44.8 Overlapping lesion of skin |
820 ( 6.8) |
|
C44.9 Skin, NOS |
4677 ( 39.0) |
|
C50.0 Nipple |
1 ( 0.0) |
|
C51.0 Labium majus |
0 ( 0.0) |
|
C51.1 Labium minus |
0 ( 0.0) |
|
C51.2 Clitoris |
0 ( 0.0) |
|
C51.8 Overlapping lesion of vulva |
0 ( 0.0) |
|
C51.9 Vulva, NOS |
6 ( 0.1) |
|
C52.9 Vagina, NOS |
2 ( 0.0) |
|
C60.0 Prepuce |
2 ( 0.0) |
|
C60.1 Glans penis |
0 ( 0.0) |
|
C60.2 Body of penis |
0 ( 0.0) |
|
C60.8 Overlapping lesion of penis |
0 ( 0.0) |
|
C60.9 Penis |
4 ( 0.0) |
|
C63.2 Scrotum, NOS |
0 ( 0.0) |
|
C77.0 Lymph Nodes: HeadFaceNeck |
75 ( 0.6) |
|
C77.1 Intrathoracic Lymph Nodes |
97 ( 0.8) |
|
C77.2 Intra-abdominal LymphNodes |
27 ( 0.2) |
|
C77.3 Lymph Nodes of axilla or arm |
26 ( 0.2) |
|
C77.4 Lymph Nodes: Leg |
20 ( 0.2) |
|
C77.5 Pelvic Lymph Nodes |
6 ( 0.1) |
|
C77.8 Lymph Nodes: multiple region |
226 ( 1.9) |
|
C77.9 Lymph Node NOS |
271 ( 2.3) |
| BEHAVIOR (%) |
2 |
0 ( 0.0) |
|
3 |
11998 (100.0) |
| GRADE_F (%) |
Gr I: Well Diff |
10 ( 0.1) |
|
Gr II: Mod Diff |
9 ( 0.1) |
|
Gr III: Poor Diff |
9 ( 0.1) |
|
Gr IV: Undiff/Anaplastic |
35 ( 0.3) |
|
5 |
8445 ( 70.4) |
|
6 |
433 ( 3.6) |
|
7 |
14 ( 0.1) |
|
8 |
679 ( 5.7) |
|
NA/Unkown |
2364 ( 19.7) |
| DX_STAGING_PROC_DAYS (mean (sd)) |
|
3.89 (51.09) |
| TNM_CLIN_T (%) |
N_A |
6035 ( 50.3) |
|
c0 |
0 ( 0.0) |
|
c1 |
1675 ( 14.0) |
|
c1A |
248 ( 2.1) |
|
c1B |
118 ( 1.0) |
|
c1C |
0 ( 0.0) |
|
c1MI |
0 ( 0.0) |
|
c2 |
811 ( 6.8) |
|
c2A |
82 ( 0.7) |
|
c2B |
112 ( 0.9) |
|
c2C |
0 ( 0.0) |
|
c2D |
0 ( 0.0) |
|
c3 |
399 ( 3.3) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c4 |
438 ( 3.7) |
|
c4A |
0 ( 0.0) |
|
c4B |
0 ( 0.0) |
|
c4C |
0 ( 0.0) |
|
c4D |
0 ( 0.0) |
|
cX |
1758 ( 14.7) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
NA |
322 ( 2.7) |
| TNM_CLIN_N (%) |
N_A |
6034 ( 50.3) |
|
c0 |
3401 ( 28.3) |
|
c1 |
194 ( 1.6) |
|
c1A |
10 ( 0.1) |
|
c1B |
9 ( 0.1) |
|
c2 |
33 ( 0.3) |
|
c2A |
1 ( 0.0) |
|
c2B |
6 ( 0.1) |
|
c2C |
0 ( 0.0) |
|
c3 |
62 ( 0.5) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c3C |
0 ( 0.0) |
|
c4 |
0 ( 0.0) |
|
cX |
1942 ( 16.2) |
|
NA |
306 ( 2.6) |
| TNM_CLIN_M (%) |
N_A |
6034 ( 50.3) |
|
c0 |
5398 ( 45.0) |
|
c0I+ |
0 ( 0.0) |
|
c1 |
72 ( 0.6) |
|
c1A |
1 ( 0.0) |
|
c1B |
0 ( 0.0) |
|
c1C |
0 ( 0.0) |
|
NA |
493 ( 4.1) |
| TNM_CLIN_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
1669 ( 13.9) |
|
1A |
3925 ( 32.7) |
|
1B |
1385 ( 11.5) |
|
1C |
0 ( 0.0) |
|
2 |
249 ( 2.1) |
|
2A |
304 ( 2.5) |
|
2B |
563 ( 4.7) |
|
2C |
0 ( 0.0) |
|
3 |
178 ( 1.5) |
|
3A |
318 ( 2.7) |
|
3B |
156 ( 1.3) |
|
3C |
0 ( 0.0) |
|
4 |
559 ( 4.7) |
|
4A |
457 ( 3.8) |
|
4A1 |
75 ( 0.6) |
|
4A2 |
31 ( 0.3) |
|
4B |
287 ( 2.4) |
|
4C |
0 ( 0.0) |
|
N_A |
31 ( 0.3) |
|
99 |
1804 ( 15.0) |
|
NA |
7 ( 0.1) |
| TNM_PATH_T (%) |
N_A |
5946 ( 49.6) |
|
p0 |
0 ( 0.0) |
|
p1 |
786 ( 6.6) |
|
p1A |
89 ( 0.7) |
|
p1B |
41 ( 0.3) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
352 ( 2.9) |
|
p2A |
19 ( 0.2) |
|
p2B |
33 ( 0.3) |
|
p2C |
0 ( 0.0) |
|
p2D |
0 ( 0.0) |
|
p3 |
165 ( 1.4) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p4 |
196 ( 1.6) |
|
p4A |
0 ( 0.0) |
|
p4B |
0 ( 0.0) |
|
p4C |
0 ( 0.0) |
|
p4D |
0 ( 0.0) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
pX |
2225 ( 18.5) |
|
NA |
2146 ( 17.9) |
| TNM_PATH_N (%) |
N_A |
5944 ( 49.5) |
|
p0 |
762 ( 6.4) |
|
p0I- |
0 ( 0.0) |
|
p0I+ |
0 ( 0.0) |
|
p0M- |
0 ( 0.0) |
|
p0M+ |
0 ( 0.0) |
|
p1 |
45 ( 0.4) |
|
p1A |
4 ( 0.0) |
|
p1B |
4 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
17 ( 0.1) |
|
p2A |
0 ( 0.0) |
|
p2B |
1 ( 0.0) |
|
p2C |
0 ( 0.0) |
|
p3 |
18 ( 0.2) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p3C |
0 ( 0.0) |
|
p4 |
0 ( 0.0) |
|
pX |
3141 ( 26.2) |
|
NA |
2062 ( 17.2) |
| TNM_PATH_M (%) |
N_A |
5714 ( 47.6) |
|
p0 |
0 ( 0.0) |
|
p1 |
32 ( 0.3) |
|
p1A |
0 ( 0.0) |
|
p1B |
0 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
pX |
2340 ( 19.5) |
|
NA |
3912 ( 32.6) |
| TNM_PATH_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
660 ( 5.5) |
|
1A |
1134 ( 9.5) |
|
1B |
336 ( 2.8) |
|
1C |
0 ( 0.0) |
|
2 |
102 ( 0.9) |
|
2A |
89 ( 0.7) |
|
2B |
155 ( 1.3) |
|
2C |
0 ( 0.0) |
|
3 |
70 ( 0.6) |
|
3A |
86 ( 0.7) |
|
3B |
54 ( 0.5) |
|
3C |
0 ( 0.0) |
|
4 |
240 ( 2.0) |
|
4A |
145 ( 1.2) |
|
4A1 |
1 ( 0.0) |
|
4B |
125 ( 1.0) |
|
4C |
0 ( 0.0) |
|
N_A |
29 ( 0.2) |
|
99 |
7411 ( 61.8) |
|
NA |
1361 ( 11.3) |
| DX_RX_STARTED_DAYS (mean (sd)) |
|
43.85 (66.55) |
| DX_SURG_STARTED_DAYS (mean (sd)) |
|
15.03 (38.25) |
| DX_DEFSURG_STARTED_DAYS (mean (sd)) |
|
20.21 (46.69) |
| MARGINS (%) |
No Residual |
818 ( 6.8) |
|
Residual, NOS |
176 ( 1.5) |
|
Microscopic Resid |
68 ( 0.6) |
|
Macroscopic Resid |
71 ( 0.6) |
|
Not evaluable |
452 ( 3.8) |
|
No surg |
9123 ( 76.0) |
|
Unknown |
1290 ( 10.8) |
| MARGINS_YN (%) |
No |
818 ( 6.8) |
|
Yes |
315 ( 2.6) |
|
No surg/Unk/NA |
10865 ( 90.6) |
| SURG_DISCHARGE_DAYS (mean (sd)) |
|
1.92 (12.01) |
| READM_HOSP_30_DAYS_F (%) |
No_Surg_or_No_Readmit |
11615 ( 96.8) |
|
Unplan_Readmit_Same |
50 ( 0.4) |
|
Plan_Readmit_Same |
68 ( 0.6) |
|
PlanUnplan_Same |
2 ( 0.0) |
|
9 |
263 ( 2.2) |
| RX_SUMM_RADIATION_F (%) |
None |
8786 ( 73.2) |
|
Beam Radiation |
3058 ( 25.5) |
|
Radioactive Implants |
26 ( 0.2) |
|
Radioisotopes |
1 ( 0.0) |
|
Beam + Imp or Isotopes |
1 ( 0.0) |
|
Radiation, NOS |
55 ( 0.5) |
|
Unknown |
71 ( 0.6) |
| PUF_30_DAY_MORT_CD_F (%) |
Alive_30 |
2165 ( 18.0) |
|
Dead_30 |
20 ( 0.2) |
|
Unknown |
41 ( 0.3) |
|
NA |
9772 ( 81.4) |
| PUF_90_DAY_MORT_CD_F (%) |
Alive_90 |
2085 ( 17.4) |
|
Dead_90 |
64 ( 0.5) |
|
Unknown |
77 ( 0.6) |
|
NA |
9772 ( 81.4) |
| DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) |
|
49.62 (40.99) |
| LYMPH_VASCULAR_INVASION_F (%) |
Neg_LymphVasc_Inv |
0 ( 0.0) |
|
Pos_LumphVasc_Inv |
0 ( 0.0) |
|
N_A |
6609 ( 55.1) |
|
Unknown |
0 ( 0.0) |
|
NA |
5389 ( 44.9) |
| RX_HOSP_SURG_APPR_2010_F (%) |
No_Surg |
5425 ( 45.2) |
|
Robot_Assist |
1 ( 0.0) |
|
Robot_to_Open |
0 ( 0.0) |
|
Endo_Lap |
58 ( 0.5) |
|
Endo_Lap_to_Open |
2 ( 0.0) |
|
Open_Unknown |
831 ( 6.9) |
|
Unknown |
292 ( 2.4) |
|
NA |
5389 ( 44.9) |
| SURG_RAD_SEQ (%) |
Surg Alone |
1774 ( 14.8) |
|
Surg then Rad |
741 ( 6.2) |
|
Rad Alone |
2325 ( 19.4) |
|
No Treatment |
6918 ( 57.7) |
|
Other |
226 ( 1.9) |
|
Rad before and after Surg |
3 ( 0.0) |
|
Rad then Surg |
11 ( 0.1) |
| SURG_RAD_SEQ_C (%) |
Surg, No rad, No Chemo |
1295 ( 10.8) |
|
Surg then Rad, No Chemo |
532 ( 4.4) |
|
Surg then Rad, Yes Chemo |
193 ( 1.6) |
|
Surg, No rad, Yes Chemo |
417 ( 3.5) |
|
No Surg, No Rad, Yes Chemo |
2664 ( 22.2) |
|
No Surg, No Rad, No Chemo |
4059 ( 33.8) |
|
Other |
560 ( 4.7) |
|
Rad, No Surg, Yes Chemo |
809 ( 6.7) |
|
Rad, No Surg, No Chemo |
1456 ( 12.1) |
|
Rad then Surg, Yes Chemo |
2 ( 0.0) |
|
Rad then Surg, No Chemo |
8 ( 0.1) |
|
Rad before and after Surg, Yes Chemo |
0 ( 0.0) |
|
Rad before and after Surg, No Chemo |
3 ( 0.0) |
| SURGERY_YN (%) |
No |
9315 ( 77.6) |
|
Ukn |
132 ( 1.1) |
|
Yes |
2551 ( 21.3) |
| RADIATION_YN (%) |
No |
8769 ( 73.1) |
|
Yes |
3141 ( 26.2) |
|
NA |
88 ( 0.7) |
| CHEMO_YN (%) |
No |
7426 ( 61.9) |
|
Yes |
4175 ( 34.8) |
|
Ukn |
397 ( 3.3) |
| mets_at_dx (%) |
Bone |
9 ( 0.1) |
|
Brain |
0 ( 0.0) |
|
Liver |
4 ( 0.0) |
|
Lung |
6 ( 0.1) |
|
None/Other/Unk/NA |
11979 ( 99.8) |
| MEDICAID_EXPN_CODE (%) |
Non-Expansion State |
3239 ( 27.0) |
|
Jan 2014 Expansion States |
3240 ( 27.0) |
|
Early Expansion States (2010-13) |
1739 ( 14.5) |
|
Late Expansion States (> Jan 2014) |
1544 ( 12.9) |
|
Suppressed for Ages 0 - 39 |
2236 ( 18.6) |
| EXPN_GROUP (%) |
Exclude |
2236 ( 18.6) |
|
Post-Expansion |
1727 ( 14.4) |
|
Pre-Expansion |
8035 ( 67.0) |
preExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 3.4575, df = 1, p-value = 0.06296
alternative hypothesis: two.sided
95 percent confidence interval:
-0.001093015 0.049869917
sample estimates:
prop 1 prop 2
0.3926571 0.3682687
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>%
filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>%
filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion
prop.test(c(preExpNoInsurance, postExpNoInsurance),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 7.7997, df = 1, p-value = 0.005225
alternative hypothesis: two.sided
95 percent confidence interval:
0.00529256 0.02222443
sample estimates:
prop 1 prop 2
0.03634101 0.02258251
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")
| n |
|
144 |
562 |
|
|
| DX_RX_STARTED_DAYS (mean (sd)) |
|
49.87 (39.28) |
46.72 (169.07) |
0.830 |
|
data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")
Kaplan Meier Analysis
All
uni_var(test_var = "All", data_imp = data)
_________________________________________________
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
n events median 0.95LCL 0.95UCL
11998 3406 NA 155 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9342 1287 0.887 0.00298 0.881 0.892
24 7739 671 0.820 0.00371 0.812 0.827
36 6321 440 0.770 0.00417 0.762 0.778
48 5151 294 0.732 0.00453 0.723 0.741
60 4162 208 0.700 0.00485 0.690 0.709
120 962 452 0.578 0.00691 0.565 0.592
## Univariable Cox Proportional Hazard Model for: All
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: All



Facility Type
uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
2236 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program 409 162 98.3 83.3 NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 1903 727 111.6 93.4 126
FACILITY_TYPE_F=Academic/Research Program 6745 1969 139.0 131.7 NA
FACILITY_TYPE_F=Integrated Network Ca Program 705 254 120.4 102.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
2236 observations deleted due to missingness
FACILITY_TYPE_F=Community Cancer Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 300 66 0.830 0.0191 0.794 0.869
24 250 30 0.745 0.0226 0.702 0.791
36 190 21 0.678 0.0249 0.630 0.728
48 164 10 0.640 0.0262 0.590 0.693
60 144 6 0.615 0.0271 0.564 0.670
120 29 29 0.420 0.0374 0.353 0.500
FACILITY_TYPE_F=Comprehensive Comm Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1421 309 0.831 0.00879 0.814 0.848
24 1159 138 0.747 0.01043 0.726 0.767
36 950 77 0.694 0.01127 0.673 0.717
48 771 55 0.651 0.01197 0.628 0.675
60 625 45 0.611 0.01268 0.586 0.636
120 163 93 0.475 0.01666 0.443 0.509
FACILITY_TYPE_F=Academic/Research Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5268 660 0.896 0.00384 0.889 0.904
24 4338 390 0.826 0.00491 0.817 0.836
36 3516 284 0.769 0.00563 0.758 0.780
48 2835 189 0.724 0.00617 0.712 0.736
60 2260 133 0.687 0.00663 0.674 0.700
120 480 277 0.550 0.00964 0.532 0.570
FACILITY_TYPE_F=Integrated Network Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 536 108 0.840 0.0141 0.813 0.868
24 435 52 0.755 0.0169 0.723 0.789
36 361 19 0.720 0.0179 0.686 0.756
48 291 25 0.667 0.0195 0.630 0.707
60 235 13 0.636 0.0204 0.597 0.677
120 57 32 0.507 0.0274 0.456 0.564
## Univariable Cox Proportional Hazard Model for: FACILITY_TYPE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
n= 9762, number of events= 3112
(2236 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.04216 0.95872 0.08689 -0.485 0.628
FACILITY_TYPE_FAcademic/Research Program -0.33521 0.71519 0.08174 -4.101 4.12e-05 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.10829 0.89737 0.10055 -1.077 0.282
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9587 1.043 0.8086 1.1367
FACILITY_TYPE_FAcademic/Research Program 0.7152 1.398 0.6093 0.8395
FACILITY_TYPE_FIntegrated Network Ca Program 0.8974 1.114 0.7369 1.0928
Concordance= 0.541 (se = 0.005 )
Rsquare= 0.006 (max possible= 0.996 )
Likelihood ratio test= 57.92 on 3 df, p=1.636e-12
Wald test = 59.75 on 3 df, p=6.65e-13
Score (logrank) test = 60.18 on 3 df, p=5.39e-13
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_TYPE_F



Facility Location
uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
2236 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England 683 202 124.9 103.6 NA
FACILITY_LOCATION_F=Middle Atlantic 2098 575 131.7 113.9 NA
FACILITY_LOCATION_F=South Atlantic 2063 688 132.3 123.4 NA
FACILITY_LOCATION_F=East North Central 1653 549 132.1 115.3 NA
FACILITY_LOCATION_F=East South Central 531 187 126.0 102.7 NA
FACILITY_LOCATION_F=West North Central 646 233 94.8 84.2 NA
FACILITY_LOCATION_F=West South Central 559 185 122.8 102.3 NA
FACILITY_LOCATION_F=Mountain 475 132 145.1 134.3 NA
FACILITY_LOCATION_F=Pacific 1054 361 135.6 108.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
2236 observations deleted due to missingness
FACILITY_LOCATION_F=New England
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 502 75 0.881 0.0129 0.856 0.907
24 407 40 0.806 0.0164 0.775 0.839
36 325 28 0.746 0.0187 0.710 0.784
48 260 18 0.701 0.0204 0.662 0.742
60 200 12 0.665 0.0219 0.623 0.709
120 34 27 0.516 0.0330 0.455 0.585
FACILITY_LOCATION_F=Middle Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1687 189 0.905 0.00658 0.892 0.918
24 1395 121 0.837 0.00853 0.820 0.854
36 1101 79 0.786 0.00976 0.767 0.805
48 833 57 0.741 0.01089 0.719 0.762
60 625 42 0.699 0.01201 0.676 0.723
120 99 80 0.527 0.02136 0.487 0.570
FACILITY_LOCATION_F=South Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1596 240 0.877 0.00745 0.863 0.892
24 1307 139 0.797 0.00938 0.779 0.815
36 1091 92 0.738 0.01051 0.718 0.759
48 925 53 0.700 0.01119 0.678 0.722
60 767 44 0.664 0.01184 0.641 0.688
120 209 105 0.534 0.01549 0.504 0.565
FACILITY_LOCATION_F=East North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1302 206 0.870 0.00847 0.853 0.887
24 1106 87 0.810 0.01004 0.790 0.830
36 893 75 0.752 0.01134 0.730 0.774
48 749 45 0.712 0.01221 0.688 0.736
60 631 31 0.681 0.01290 0.656 0.706
120 140 95 0.523 0.01839 0.488 0.560
FACILITY_LOCATION_F=East South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 415 67 0.868 0.0150 0.839 0.898
24 346 41 0.779 0.0188 0.743 0.817
36 294 24 0.723 0.0207 0.684 0.765
48 231 15 0.684 0.0219 0.642 0.728
60 177 13 0.642 0.0234 0.598 0.690
120 47 24 0.511 0.0316 0.453 0.577
FACILITY_LOCATION_F=West North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 448 105 0.825 0.0156 0.795 0.856
24 365 37 0.754 0.0181 0.719 0.790
36 307 22 0.706 0.0196 0.669 0.746
48 238 27 0.640 0.0216 0.599 0.683
60 185 13 0.601 0.0228 0.558 0.647
120 34 27 0.454 0.0321 0.395 0.521
FACILITY_LOCATION_F=West South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 415 76 0.855 0.0154 0.826 0.886
24 326 43 0.761 0.0193 0.725 0.800
36 266 14 0.726 0.0206 0.687 0.767
48 215 20 0.668 0.0227 0.625 0.714
60 164 13 0.624 0.0243 0.578 0.673
120 25 16 0.514 0.0355 0.449 0.589
FACILITY_LOCATION_F=Mountain
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 358 43 0.904 0.0139 0.877 0.932
24 283 30 0.822 0.0191 0.785 0.860
36 221 22 0.754 0.0223 0.712 0.799
48 189 9 0.722 0.0239 0.677 0.770
60 160 10 0.682 0.0256 0.634 0.734
120 40 14 0.597 0.0319 0.537 0.663
FACILITY_LOCATION_F=Pacific
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 802 142 0.860 0.0109 0.839 0.882
24 647 72 0.779 0.0135 0.753 0.805
36 519 45 0.721 0.0150 0.692 0.751
48 421 35 0.670 0.0162 0.639 0.702
60 355 19 0.638 0.0170 0.605 0.672
120 101 43 0.519 0.0220 0.478 0.564
## Univariable Cox Proportional Hazard Model for: FACILITY_LOCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
n= 9762, number of events= 3112
(2236 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic -0.130653 0.877523 0.081798 -1.597 0.110
FACILITY_LOCATION_FSouth Atlantic 0.001949 1.001951 0.080062 0.024 0.981
FACILITY_LOCATION_FEast North Central -0.013188 0.986899 0.082312 -0.160 0.873
FACILITY_LOCATION_FEast South Central 0.059810 1.061635 0.101494 0.589 0.556
FACILITY_LOCATION_FWest North Central 0.229410 1.257857 0.096139 2.386 0.017 *
FACILITY_LOCATION_FWest South Central 0.119967 1.127460 0.101767 1.179 0.238
FACILITY_LOCATION_FMountain -0.114873 0.891479 0.111933 -1.026 0.305
FACILITY_LOCATION_FPacific 0.061094 1.062999 0.087912 0.695 0.487
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic 0.8775 1.1396 0.7475 1.030
FACILITY_LOCATION_FSouth Atlantic 1.0020 0.9981 0.8564 1.172
FACILITY_LOCATION_FEast North Central 0.9869 1.0133 0.8399 1.160
FACILITY_LOCATION_FEast South Central 1.0616 0.9419 0.8701 1.295
FACILITY_LOCATION_FWest North Central 1.2579 0.7950 1.0418 1.519
FACILITY_LOCATION_FWest South Central 1.1275 0.8869 0.9236 1.376
FACILITY_LOCATION_FMountain 0.8915 1.1217 0.7159 1.110
FACILITY_LOCATION_FPacific 1.0630 0.9407 0.8948 1.263
Concordance= 0.533 (se = 0.005 )
Rsquare= 0.003 (max possible= 0.996 )
Likelihood ratio test= 28.06 on 8 df, p=0.0004625
Wald test = 28.53 on 8 df, p=0.0003828
Score (logrank) test = 28.67 on 8 df, p=0.0003622
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_LOCATION_F



Facility Geography
uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
2236 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 2781 777 132 114 NA
FACILITY_GEOGRAPHY=South 2622 873 131 123 155
FACILITY_GEOGRAPHY=Midwest 2830 969 126 112 140
FACILITY_GEOGRAPHY=West 1529 493 142 121 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
2236 observations deleted due to missingness
FACILITY_GEOGRAPHY=Northeast
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2189 264 0.899 0.00589 0.888 0.911
24 1802 161 0.829 0.00758 0.815 0.844
36 1426 107 0.776 0.00867 0.759 0.793
48 1093 75 0.731 0.00961 0.713 0.750
60 825 54 0.691 0.01053 0.671 0.712
120 133 107 0.525 0.01794 0.491 0.561
FACILITY_GEOGRAPHY=South
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2011 316 0.872 0.00672 0.859 0.886
24 1633 182 0.789 0.00845 0.773 0.806
36 1357 106 0.735 0.00937 0.717 0.754
48 1140 73 0.693 0.01004 0.674 0.713
60 931 57 0.656 0.01065 0.635 0.677
120 234 121 0.530 0.01409 0.503 0.558
FACILITY_GEOGRAPHY=Midwest
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2165 378 0.859 0.00671 0.846 0.873
24 1817 165 0.792 0.00800 0.776 0.807
36 1494 121 0.736 0.00889 0.719 0.754
48 1218 87 0.691 0.00959 0.672 0.710
60 993 57 0.656 0.01015 0.636 0.676
120 221 146 0.506 0.01425 0.479 0.534
FACILITY_GEOGRAPHY=West
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1160 185 0.874 0.00871 0.857 0.891
24 930 102 0.792 0.01104 0.770 0.814
36 740 67 0.731 0.01244 0.707 0.756
48 610 44 0.685 0.01345 0.660 0.712
60 515 29 0.651 0.01421 0.624 0.680
120 141 57 0.540 0.01835 0.506 0.578
## Univariable Cox Proportional Hazard Model for: FACILITY_GEOGRAPHY
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
n= 9762, number of events= 3112
(2236 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_GEOGRAPHYSouth 0.12429 1.13234 0.04938 2.517 0.01184 *
FACILITY_GEOGRAPHYMidwest 0.15287 1.16518 0.04820 3.172 0.00152 **
FACILITY_GEOGRAPHYWest 0.10932 1.11552 0.05766 1.896 0.05796 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth 1.132 0.8831 1.0279 1.247
FACILITY_GEOGRAPHYMidwest 1.165 0.8582 1.0601 1.281
FACILITY_GEOGRAPHYWest 1.116 0.8964 0.9963 1.249
Concordance= 0.52 (se = 0.005 )
Rsquare= 0.001 (max possible= 0.996 )
Likelihood ratio test= 11.21 on 3 df, p=0.01066
Wald test = 11.01 on 3 df, p=0.01168
Score (logrank) test = 11.02 on 3 df, p=0.01159
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_GEOGRAPHY



Age Group
uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
5 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_F=(0,54] 5207 854 NA NA NA
AGE_F=(54,64] 2666 651 NA 158.3 NA
AGE_F=(64,74] 2259 775 106 99.2 119.8
AGE_F=(74,100] 1861 1126 41 37.8 46.3
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
5 observations deleted due to missingness
AGE_F=(0,54]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4221 360 0.927 0.00373 0.919 0.934
24 3599 197 0.881 0.00475 0.872 0.891
36 3048 101 0.855 0.00527 0.845 0.866
48 2554 59 0.837 0.00564 0.827 0.849
60 2116 43 0.822 0.00599 0.811 0.834
120 559 82 0.772 0.00807 0.756 0.788
AGE_F=(54,64]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2104 227 0.910 0.00573 0.899 0.921
24 1747 117 0.856 0.00723 0.842 0.870
36 1429 92 0.808 0.00838 0.792 0.825
48 1148 81 0.758 0.00952 0.740 0.777
60 937 35 0.734 0.01009 0.714 0.754
120 204 91 0.618 0.01469 0.590 0.648
AGE_F=(64,74]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1722 267 0.874 0.00721 0.860 0.889
24 1404 149 0.795 0.00903 0.777 0.813
36 1107 101 0.733 0.01020 0.714 0.754
48 888 66 0.687 0.01105 0.666 0.709
60 690 59 0.637 0.01201 0.614 0.661
120 140 117 0.462 0.01754 0.429 0.497
AGE_F=(74,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1292 433 0.759 0.0101 0.739 0.779
24 986 208 0.632 0.0116 0.610 0.655
36 734 146 0.533 0.0124 0.509 0.558
48 559 88 0.464 0.0128 0.440 0.490
60 417 71 0.401 0.0131 0.376 0.427
120 59 162 0.176 0.0145 0.150 0.207
## Univariable Cox Proportional Hazard Model for: AGE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n= 11993, number of events= 3406
(5 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_F(54,64] 0.47932 1.61498 0.05205 9.208 <2e-16 ***
AGE_F(64,74] 0.87997 2.41082 0.04967 17.716 <2e-16 ***
AGE_F(74,100] 1.61201 5.01290 0.04561 35.342 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64] 1.615 0.6192 1.458 1.788
AGE_F(64,74] 2.411 0.4148 2.187 2.657
AGE_F(74,100] 5.013 0.1995 4.584 5.482
Concordance= 0.645 (se = 0.005 )
Rsquare= 0.101 (max possible= 0.993 )
Likelihood ratio test= 1275 on 3 df, p=0
Wald test = 1344 on 3 df, p=0
Score (logrank) test = 1558 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_F



Age Group
uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
5 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_40=(0,40] 2371 315 NA NA NA
AGE_40=(40,100] 9622 3091 131 125 138
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
5 observations deleted due to missingness
AGE_40=(0,40]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1931 151 0.932 0.00535 0.922 0.943
24 1651 70 0.896 0.00663 0.883 0.909
36 1383 41 0.873 0.00741 0.858 0.887
48 1161 15 0.862 0.00779 0.847 0.878
60 953 13 0.852 0.00823 0.836 0.868
120 248 22 0.821 0.01050 0.801 0.842
AGE_40=(40,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7408 1136 0.875 0.00347 0.869 0.882
24 6085 601 0.801 0.00431 0.792 0.809
36 4935 399 0.745 0.00483 0.736 0.755
48 3988 279 0.700 0.00524 0.690 0.710
60 3207 195 0.663 0.00559 0.652 0.674
120 714 430 0.522 0.00792 0.507 0.538
## Univariable Cox Proportional Hazard Model for: AGE_40
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n= 11993, number of events= 3406
(5 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_40(40,100] 0.98736 2.68413 0.05917 16.69 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100] 2.684 0.3726 2.39 3.014
Concordance= 0.554 (se = 0.004 )
Rsquare= 0.03 (max possible= 0.993 )
Likelihood ratio test= 363.6 on 1 df, p=0
Wald test = 278.5 on 1 df, p=0
Score (logrank) test = 301.8 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_40



Gender
uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n events median 0.95LCL 0.95UCL
SEX_F=Male 6959 2109 150 135 NA
SEX_F=Female 5039 1297 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
SEX_F=Male
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5386 792 0.880 0.00402 0.872 0.887
24 4418 438 0.804 0.00503 0.795 0.814
36 3607 270 0.752 0.00562 0.741 0.763
48 2937 166 0.715 0.00604 0.703 0.727
60 2384 124 0.683 0.00644 0.670 0.695
120 544 284 0.555 0.00909 0.537 0.573
SEX_F=Female
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3956 495 0.896 0.00442 0.888 0.905
24 3321 233 0.841 0.00544 0.830 0.852
36 2714 170 0.795 0.00618 0.783 0.807
48 2214 128 0.754 0.00683 0.741 0.768
60 1778 84 0.723 0.00735 0.709 0.738
120 418 168 0.612 0.01062 0.591 0.633
## Univariable Cox Proportional Hazard Model for: SEX_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
SEX_FFemale -0.19249 0.82491 0.03529 -5.454 4.91e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale 0.8249 1.212 0.7698 0.884
Concordance= 0.523 (se = 0.005 )
Rsquare= 0.003 (max possible= 0.993 )
Likelihood ratio test= 30.17 on 1 df, p=3.965e-08
Wald test = 29.75 on 1 df, p=4.912e-08
Score (logrank) test = 29.84 on 1 df, p=4.684e-08
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SEX_F



RACE_F
uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n events median 0.95LCL 0.95UCL
RACE_F=White 9070 2625 158 145 NA
RACE_F=Black 2031 581 NA 148 NA
RACE_F=Other/Unk 465 91 NA NA NA
RACE_F=Asian 432 109 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
RACE_F=White
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7087 969 0.887 0.00342 0.881 0.894
24 5881 525 0.818 0.00428 0.810 0.827
36 4814 345 0.767 0.00481 0.758 0.777
48 3959 211 0.731 0.00519 0.721 0.742
60 3212 167 0.698 0.00556 0.687 0.709
120 724 364 0.571 0.00799 0.555 0.587
RACE_F=Black
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1568 230 0.880 0.00744 0.866 0.895
24 1286 110 0.815 0.00913 0.797 0.833
36 1049 75 0.764 0.01027 0.744 0.785
48 837 58 0.718 0.01128 0.697 0.741
60 661 33 0.687 0.01203 0.664 0.711
120 167 66 0.581 0.01645 0.550 0.614
RACE_F=Other/Unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 367 29 0.931 0.0124 0.907 0.956
24 306 20 0.878 0.0164 0.846 0.911
36 239 11 0.843 0.0189 0.807 0.881
48 179 15 0.784 0.0228 0.741 0.830
60 141 4 0.765 0.0243 0.719 0.814
120 33 12 0.668 0.0350 0.603 0.740
RACE_F=Asian
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 320 59 0.855 0.0175 0.822 0.890
24 266 16 0.810 0.0199 0.772 0.850
36 219 9 0.781 0.0213 0.741 0.824
48 176 10 0.743 0.0235 0.698 0.790
60 148 4 0.725 0.0246 0.679 0.775
120 38 10 0.649 0.0330 0.587 0.717
## Univariable Cox Proportional Hazard Model for: RACE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
RACE_FBlack 0.009833 1.009881 0.045851 0.214 0.830194
RACE_FOther/Unk -0.356896 0.699845 0.106636 -3.347 0.000817 ***
RACE_FAsian -0.107685 0.897910 0.097753 -1.102 0.270634
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack 1.0099 0.9902 0.9231 1.1048
RACE_FOther/Unk 0.6998 1.4289 0.5678 0.8625
RACE_FAsian 0.8979 1.1137 0.7414 1.0875
Concordance= 0.508 (se = 0.004 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 13.86 on 3 df, p=0.003104
Wald test = 12.47 on 3 df, p=0.005922
Score (logrank) test = 12.6 on 3 df, p=0.005598
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RACE_F



Hispanic
uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n events median 0.95LCL 0.95UCL
HISPANIC=No 10462 2975 158 148 NA
HISPANIC=Yes 961 262 NA NA NA
HISPANIC=Unknown 575 169 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
HISPANIC=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8169 1092 0.890 0.00316 0.883 0.896
24 6765 589 0.822 0.00396 0.814 0.830
36 5542 387 0.772 0.00446 0.764 0.781
48 4507 268 0.732 0.00486 0.723 0.742
60 3646 185 0.700 0.00520 0.690 0.710
120 845 402 0.577 0.00741 0.562 0.591
HISPANIC=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 698 145 0.839 0.0123 0.815 0.863
24 561 48 0.778 0.0142 0.751 0.807
36 435 29 0.734 0.0156 0.705 0.766
48 353 10 0.716 0.0162 0.685 0.749
60 264 10 0.692 0.0174 0.659 0.727
120 46 20 0.599 0.0264 0.549 0.653
HISPANIC=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 475 50 0.909 0.0123 0.885 0.933
24 413 34 0.842 0.0158 0.812 0.874
36 344 24 0.790 0.0181 0.755 0.826
48 291 16 0.751 0.0196 0.714 0.791
60 252 13 0.717 0.0210 0.677 0.759
120 71 30 0.594 0.0277 0.542 0.651
## Univariable Cox Proportional Hazard Model for: HISPANIC
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
HISPANICYes 0.07767 1.08077 0.06447 1.205 0.228
HISPANICUnknown -0.07866 0.92435 0.07911 -0.994 0.320
exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes 1.0808 0.9253 0.9525 1.226
HISPANICUnknown 0.9244 1.0818 0.7916 1.079
Concordance= 0.509 (se = 0.003 )
Rsquare= 0 (max possible= 0.993 )
Likelihood ratio test= 2.6 on 2 df, p=0.2725
Wald test = 2.61 on 2 df, p=0.2715
Score (logrank) test = 2.61 on 2 df, p=0.2713
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISPANIC



Insurance Status
uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n events median 0.95LCL 0.95UCL
INSURANCE_F=Private 6315 1110 NA NA NA
INSURANCE_F=None 497 144 NA NA NA
INSURANCE_F=Medicaid 842 249 NA NA NA
INSURANCE_F=Medicare 3854 1769 66.3 63.0 72.5
INSURANCE_F=Other Government 172 48 115.9 99.8 NA
INSURANCE_F=Unknown 318 86 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
INSURANCE_F=Private
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5166 374 0.937 0.00315 0.931 0.943
24 4384 247 0.890 0.00418 0.882 0.898
36 3695 148 0.858 0.00477 0.849 0.868
48 3072 110 0.831 0.00529 0.821 0.841
60 2535 68 0.811 0.00568 0.800 0.823
120 649 142 0.739 0.00806 0.723 0.755
INSURANCE_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 341 80 0.824 0.0180 0.789 0.860
24 280 26 0.758 0.0206 0.719 0.800
36 223 13 0.721 0.0220 0.679 0.766
48 187 11 0.683 0.0237 0.638 0.731
60 143 6 0.659 0.0248 0.612 0.710
120 28 8 0.603 0.0303 0.547 0.666
INSURANCE_F=Medicaid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 631 133 0.834 0.0132 0.809 0.860
24 492 56 0.755 0.0156 0.725 0.786
36 382 26 0.711 0.0169 0.678 0.745
48 302 13 0.685 0.0178 0.651 0.721
60 228 6 0.671 0.0183 0.636 0.708
120 39 15 0.594 0.0255 0.546 0.646
INSURANCE_F=Medicare
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2818 654 0.822 0.00633 0.810 0.834
24 2248 320 0.724 0.00759 0.709 0.739
36 1747 230 0.645 0.00836 0.629 0.662
48 1366 152 0.585 0.00890 0.568 0.603
60 1066 118 0.530 0.00938 0.512 0.549
120 194 264 0.330 0.01231 0.307 0.355
INSURANCE_F=Other Government
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 138 12 0.925 0.0208 0.885 0.967
24 116 8 0.870 0.0273 0.818 0.925
36 86 10 0.787 0.0351 0.721 0.859
48 66 3 0.756 0.0380 0.685 0.835
60 56 3 0.720 0.0415 0.643 0.806
120 10 11 0.429 0.0789 0.299 0.616
INSURANCE_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 248 34 0.886 0.0184 0.851 0.923
24 219 14 0.835 0.0219 0.793 0.879
36 188 13 0.783 0.0248 0.736 0.833
48 158 5 0.761 0.0260 0.711 0.813
60 134 7 0.725 0.0281 0.672 0.782
120 42 12 0.628 0.0371 0.560 0.705
## Univariable Cox Proportional Hazard Model for: INSURANCE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
INSURANCE_FNone 0.71658 2.04742 0.08861 8.087 5.55e-16 ***
INSURANCE_FMedicaid 0.70831 2.03056 0.07019 10.092 < 2e-16 ***
INSURANCE_FMedicare 1.15828 3.18444 0.03840 30.164 < 2e-16 ***
INSURANCE_FOther Government 0.58135 1.78845 0.14746 3.942 8.07e-05 ***
INSURANCE_FUnknown 0.41240 1.51045 0.11194 3.684 0.00023 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone 2.047 0.4884 1.721 2.436
INSURANCE_FMedicaid 2.031 0.4925 1.770 2.330
INSURANCE_FMedicare 3.184 0.3140 2.954 3.433
INSURANCE_FOther Government 1.788 0.5591 1.340 2.388
INSURANCE_FUnknown 1.510 0.6621 1.213 1.881
Concordance= 0.63 (se = 0.005 )
Rsquare= 0.076 (max possible= 0.993 )
Likelihood ratio test= 951.8 on 5 df, p=0
Wald test = 917.8 on 5 df, p=0
Score (logrank) test = 1011 on 5 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INSURANCE_F



Overall Survival pre/post-ACA expansion
uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 144 20 NA 82.8 NA
EXPN_GROUP=Pre-Expansion 562 145 132 125.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
EXPN_GROUP=Post-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 119 5 0.963 0.0163 0.931 0.995
24 85 9 0.880 0.0303 0.823 0.942
36 42 4 0.827 0.0386 0.755 0.906
48 28 1 0.799 0.0467 0.712 0.896
60 18 0 0.799 0.0467 0.712 0.896
EXPN_GROUP=Pre-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 498 20 0.963 0.00815 0.947 0.979
24 457 16 0.931 0.01111 0.909 0.953
36 394 20 0.888 0.01419 0.860 0.916
48 322 16 0.849 0.01652 0.818 0.882
60 253 25 0.778 0.02044 0.739 0.819
120 51 39 0.586 0.03289 0.525 0.655
## Univariable Cox Proportional Hazard Model for: EXPN_GROUP
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n= 706, number of events= 165
coef exp(coef) se(coef) z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2186 0.8036 0.2458 -0.889 0.374
exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion 0.8036 1.244 0.4964 1.301
Concordance= 0.519 (se = 0.016 )
Rsquare= 0.001 (max possible= 0.932 )
Likelihood ratio test= 0.75 on 1 df, p=0.3855
Wald test = 0.79 on 1 df, p=0.3739
Score (logrank) test = 0.79 on 1 df, p=0.373
## Unadjusted Kaplan Meier Overall Survival Curve for: EXPN_GROUP



Education
uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
66 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more 1977 638 132 115 NA
EDUCATION_F=13 - 20.9% 2912 911 140 127 NA
EDUCATION_F=7 - 12.9% 3791 1091 158 145 NA
EDUCATION_F=Less than 7% 3252 753 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
66 observations deleted due to missingness
EDUCATION_F=21% or more
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1497 258 0.862 0.00800 0.846 0.878
24 1190 137 0.779 0.00989 0.760 0.798
36 966 76 0.726 0.01092 0.705 0.748
48 766 57 0.679 0.01185 0.657 0.703
60 623 31 0.650 0.01249 0.625 0.674
120 134 70 0.524 0.01789 0.490 0.560
EDUCATION_F=13 - 20.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2237 349 0.873 0.00634 0.861 0.886
24 1869 170 0.804 0.00776 0.789 0.819
36 1519 125 0.747 0.00873 0.730 0.764
48 1222 78 0.706 0.00941 0.688 0.725
60 982 51 0.674 0.00998 0.655 0.694
120 243 123 0.540 0.01428 0.513 0.569
EDUCATION_F=7 - 12.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2978 409 0.887 0.00529 0.876 0.897
24 2475 211 0.820 0.00657 0.808 0.833
36 2037 131 0.774 0.00734 0.760 0.789
48 1669 98 0.734 0.00799 0.719 0.750
60 1392 64 0.704 0.00851 0.688 0.721
120 319 156 0.579 0.01199 0.556 0.603
EDUCATION_F=Less than 7%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2588 264 0.914 0.00508 0.904 0.924
24 2171 152 0.857 0.00651 0.845 0.870
36 1772 106 0.813 0.00748 0.798 0.828
48 1468 61 0.783 0.00814 0.767 0.799
60 1144 60 0.748 0.00896 0.730 0.765
120 259 102 0.648 0.01261 0.624 0.673
## Univariable Cox Proportional Hazard Model for: EDUCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
n= 11932, number of events= 3393
(66 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
EDUCATION_F13 - 20.9% -0.07945 0.92362 0.05163 -1.539 0.123827
EDUCATION_F7 - 12.9% -0.19345 0.82411 0.04985 -3.880 0.000104 ***
EDUCATION_FLess than 7% -0.40656 0.66594 0.05382 -7.555 4.2e-14 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9% 0.9236 1.083 0.8347 1.0220
EDUCATION_F7 - 12.9% 0.8241 1.213 0.7474 0.9087
EDUCATION_FLess than 7% 0.6659 1.502 0.5993 0.7400
Concordance= 0.542 (se = 0.005 )
Rsquare= 0.006 (max possible= 0.993 )
Likelihood ratio test= 70.27 on 3 df, p=3.775e-15
Wald test = 68.59 on 3 df, p=8.549e-15
Score (logrank) test = 69.17 on 3 df, p=6.439e-15
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: EDUCATION_F



Urban/Rural
uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
342 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
U_R_F=Metro 10196 2813 NA 158.3 NA
U_R_F=Urban 1306 431 144 126.4 NA
U_R_F=Rural 154 59 118 74.5 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
342 observations deleted due to missingness
U_R_F=Metro
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7977 1058 0.890 0.00319 0.884 0.897
24 6615 547 0.826 0.00397 0.818 0.834
36 5388 369 0.777 0.00448 0.768 0.786
48 4386 248 0.739 0.00488 0.729 0.748
60 3524 176 0.706 0.00524 0.696 0.717
120 804 371 0.586 0.00758 0.571 0.601
U_R_F=Urban
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 996 165 0.867 0.00965 0.848 0.886
24 831 90 0.786 0.01195 0.763 0.810
36 699 50 0.736 0.01310 0.711 0.763
48 579 35 0.697 0.01399 0.670 0.725
60 484 26 0.664 0.01476 0.636 0.694
120 125 57 0.548 0.01910 0.512 0.587
U_R_F=Rural
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 113 27 0.818 0.0317 0.758 0.883
24 92 13 0.722 0.0377 0.651 0.799
36 80 7 0.666 0.0402 0.591 0.749
48 67 3 0.639 0.0414 0.563 0.726
60 56 1 0.629 0.0420 0.552 0.717
120 11 8 0.465 0.0648 0.354 0.611
## Univariable Cox Proportional Hazard Model for: U_R_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
n= 11656, number of events= 3303
(342 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
U_R_FUrban 0.16870 1.18376 0.05174 3.261 0.00111 **
U_R_FRural 0.36265 1.43713 0.13155 2.757 0.00584 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban 1.184 0.8448 1.070 1.31
U_R_FRural 1.437 0.6958 1.111 1.86
Concordance= 0.513 (se = 0.003 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 16.28 on 2 df, p=0.0002912
Wald test = 17.34 on 2 df, p=0.0001717
Score (logrank) test = 17.44 on 2 df, p=0.0001634
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: U_R_F



Year
uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 784 318 NA 131.0 NA
YEAR_OF_DIAGNOSIS=2005 872 357 147.6 134.6 NA
YEAR_OF_DIAGNOSIS=2006 841 297 NA NA NA
YEAR_OF_DIAGNOSIS=2007 861 309 NA NA NA
YEAR_OF_DIAGNOSIS=2008 929 314 NA 115.5 NA
YEAR_OF_DIAGNOSIS=2009 1102 348 NA 104.8 NA
YEAR_OF_DIAGNOSIS=2010 1044 296 NA 93.9 NA
YEAR_OF_DIAGNOSIS=2011 967 255 NA NA NA
YEAR_OF_DIAGNOSIS=2012 1009 254 NA 69.6 NA
YEAR_OF_DIAGNOSIS=2013 1132 268 59.6 NA NA
YEAR_OF_DIAGNOSIS=2014 1194 218 NA 46.3 NA
YEAR_OF_DIAGNOSIS=2015 1263 172 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
YEAR_OF_DIAGNOSIS=2004
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 639 94 0.876 0.0120 0.853 0.900
24 572 42 0.817 0.0142 0.790 0.845
36 523 39 0.761 0.0158 0.731 0.793
48 488 31 0.716 0.0169 0.683 0.749
60 452 26 0.677 0.0176 0.644 0.712
120 270 65 0.564 0.0195 0.527 0.604
YEAR_OF_DIAGNOSIS=2005
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 702 105 0.875 0.0114 0.853 0.898
24 613 62 0.796 0.0141 0.769 0.824
36 572 38 0.746 0.0154 0.717 0.777
48 534 29 0.708 0.0161 0.677 0.741
60 498 25 0.675 0.0167 0.643 0.708
120 303 75 0.560 0.0184 0.525 0.597
YEAR_OF_DIAGNOSIS=2006
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 675 106 0.869 0.0119 0.846 0.893
24 595 50 0.803 0.0142 0.776 0.831
36 549 33 0.758 0.0154 0.728 0.789
48 522 20 0.730 0.0160 0.699 0.762
60 490 20 0.702 0.0166 0.670 0.735
120 277 60 0.603 0.0186 0.568 0.641
YEAR_OF_DIAGNOSIS=2007
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 703 115 0.863 0.0118 0.841 0.887
24 606 66 0.780 0.0145 0.752 0.809
36 564 25 0.748 0.0153 0.718 0.778
48 524 24 0.715 0.0160 0.685 0.747
60 478 18 0.690 0.0165 0.659 0.723
120 112 59 0.583 0.0193 0.547 0.622
YEAR_OF_DIAGNOSIS=2008
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 747 97 0.890 0.0105 0.870 0.911
24 655 64 0.812 0.0134 0.786 0.839
36 583 52 0.747 0.0151 0.718 0.777
48 531 18 0.723 0.0156 0.693 0.754
60 478 20 0.695 0.0162 0.664 0.728
YEAR_OF_DIAGNOSIS=2009
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 883 120 0.886 0.00978 0.867 0.906
24 802 60 0.825 0.01187 0.802 0.849
36 719 42 0.781 0.01307 0.756 0.807
48 654 40 0.737 0.01407 0.709 0.765
60 600 20 0.713 0.01455 0.685 0.743
YEAR_OF_DIAGNOSIS=2010
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 849 99 0.901 0.0095 0.882 0.919
24 752 54 0.842 0.0118 0.819 0.865
36 692 33 0.804 0.0129 0.779 0.830
48 622 42 0.754 0.0142 0.727 0.783
60 545 26 0.721 0.0150 0.692 0.751
YEAR_OF_DIAGNOSIS=2011
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 775 96 0.896 0.0101 0.876 0.916
24 681 50 0.836 0.0125 0.812 0.861
36 616 35 0.792 0.0138 0.765 0.820
48 546 31 0.751 0.0150 0.722 0.781
60 431 26 0.712 0.0160 0.681 0.744
YEAR_OF_DIAGNOSIS=2012
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 782 103 0.891 0.0102 0.871 0.911
24 675 57 0.823 0.0128 0.799 0.849
36 579 48 0.763 0.0145 0.735 0.792
48 475 21 0.734 0.0153 0.704 0.764
60 190 20 0.691 0.0173 0.658 0.726
YEAR_OF_DIAGNOSIS=2013
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 859 127 0.881 0.00993 0.862 0.901
24 723 55 0.821 0.01209 0.798 0.845
36 602 51 0.761 0.01384 0.735 0.789
48 254 28 0.718 0.01540 0.688 0.748
YEAR_OF_DIAGNOSIS=2014
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 874 119 0.892 0.00939 0.874 0.911
24 706 59 0.828 0.01188 0.805 0.851
36 322 30 0.786 0.01358 0.760 0.813
48 1 10 0.596 0.09784 0.432 0.822
YEAR_OF_DIAGNOSIS=2015
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 854 106 0.905 0.00883 0.888 0.922
24 359 52 0.834 0.01268 0.810 0.860
## Univariable Cox Proportional Hazard Model for: YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 0.038218 1.038958 0.077343 0.494 0.621
YEAR_OF_DIAGNOSIS2006 -0.086521 0.917116 0.081167 -1.066 0.286
YEAR_OF_DIAGNOSIS2007 -0.021762 0.978474 0.080638 -0.270 0.787
YEAR_OF_DIAGNOSIS2008 -0.006121 0.993898 0.080522 -0.076 0.939
YEAR_OF_DIAGNOSIS2009 -0.052533 0.948823 0.078767 -0.667 0.505
YEAR_OF_DIAGNOSIS2010 -0.108782 0.896926 0.082115 -1.325 0.185
YEAR_OF_DIAGNOSIS2011 -0.102864 0.902249 0.085540 -1.203 0.229
YEAR_OF_DIAGNOSIS2012 -0.033700 0.966861 0.085854 -0.393 0.695
YEAR_OF_DIAGNOSIS2013 0.015675 1.015798 0.084922 0.185 0.854
YEAR_OF_DIAGNOSIS2014 -0.094351 0.909963 0.090166 -1.046 0.295
YEAR_OF_DIAGNOSIS2015 -0.158429 0.853484 0.097244 -1.629 0.103
YEAR_OF_DIAGNOSIS2016 NA NA 0.000000 NA NA
exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005 1.0390 0.9625 0.8928 1.209
YEAR_OF_DIAGNOSIS2006 0.9171 1.0904 0.7822 1.075
YEAR_OF_DIAGNOSIS2007 0.9785 1.0220 0.8354 1.146
YEAR_OF_DIAGNOSIS2008 0.9939 1.0061 0.8488 1.164
YEAR_OF_DIAGNOSIS2009 0.9488 1.0539 0.8131 1.107
YEAR_OF_DIAGNOSIS2010 0.8969 1.1149 0.7636 1.054
YEAR_OF_DIAGNOSIS2011 0.9022 1.1083 0.7630 1.067
YEAR_OF_DIAGNOSIS2012 0.9669 1.0343 0.8171 1.144
YEAR_OF_DIAGNOSIS2013 1.0158 0.9844 0.8600 1.200
YEAR_OF_DIAGNOSIS2014 0.9100 1.0989 0.7626 1.086
YEAR_OF_DIAGNOSIS2015 0.8535 1.1717 0.7054 1.033
YEAR_OF_DIAGNOSIS2016 NA NA NA NA
Concordance= 0.519 (se = 0.005 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 9.76 on 11 df, p=0.5522
Wald test = 9.73 on 11 df, p=0.555
Score (logrank) test = 9.74 on 11 df, p=0.554
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.



Primary Site
uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n events median 0.95LCL 0.95UCL
SITE_TEXT=C01.9 Tongue: Base NOS 5 3 17.84 13.60 NA
SITE_TEXT=C02.1 Tongue: Border, Tip 1 0 NA NA NA
SITE_TEXT=C02.9 Tongue: NOS 1 1 0.72 NA NA
SITE_TEXT=C03.0 Gum: Upper 1 1 9.17 NA NA
SITE_TEXT=C03.9 Gum NOS 1 0 NA NA NA
SITE_TEXT=C04.9 Floor of Mouth NOS 1 1 6.31 NA NA
SITE_TEXT=C05.0 Hard Palate 15 5 NA 5.26 NA
SITE_TEXT=C05.1 Soft Palate NOS 9 4 NA 8.11 NA
SITE_TEXT=C05.8 Palate: Overlapping 2 2 8.53 3.88 NA
SITE_TEXT=C05.9 Palate NOS 4 2 53.91 3.65 NA
SITE_TEXT=C06.0 Cheek Mucosa 3 2 1.87 0.99 NA
SITE_TEXT=C06.1 Mouth: Vestibule 2 2 3.58 2.27 NA
SITE_TEXT=C06.9 Mouth NOS 1 1 6.51 NA NA
SITE_TEXT=C07.9 Parotid Gland 1 1 12.16 NA NA
SITE_TEXT=C09.8 Tonsil: Overlapping 1 1 16.26 NA NA
SITE_TEXT=C09.9 Tonsil NOS 9 3 NA 8.64 NA
SITE_TEXT=C11.1 Nasopharynx: Poster Wall 2 0 NA NA NA
SITE_TEXT=C14.2 Waldeyer Ring 4 2 20.34 2.50 NA
SITE_TEXT=C30.0 Nasal Cavity 572 245 93.96 49.84 NA
SITE_TEXT=C37.9 Thymus 4 3 12.86 3.35 NA
SITE_TEXT=C42.2 Spleen 4 3 35.47 4.70 NA
SITE_TEXT=C44.0 Skin of lip, NOS 38 8 NA NA NA
SITE_TEXT=C44.1 Eyelid 31 9 NA 96.79 NA
SITE_TEXT=C44.2 External ear 51 11 NA 89.46 NA
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 721 114 NA NA NA
SITE_TEXT=C44.4 Skin of scalp and neck 416 71 NA NA NA
SITE_TEXT=C44.5 Skin of trunk 1762 352 NA NA NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder 866 196 NA NA NA
SITE_TEXT=C44.7 Skin of lower limb and hip 1210 296 NA 150.05 NA
SITE_TEXT=C44.8 Overlapping lesion of skin 820 264 135.52 103.13 NA
SITE_TEXT=C44.9 Skin, NOS 4677 1393 132.34 124.12 NA
SITE_TEXT=C50.0 Nipple 1 1 6.05 NA NA
SITE_TEXT=C51.9 Vulva, NOS 6 2 NA 84.47 NA
SITE_TEXT=C52.9 Vagina, NOS 2 2 32.03 3.25 NA
SITE_TEXT=C60.0 Prepuce 2 0 NA NA NA
SITE_TEXT=C60.9 Penis 4 0 NA NA NA
SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck 75 33 68.27 26.18 NA
SITE_TEXT=C77.1 Intrathoracic Lymph Nodes 97 38 NA 61.90 NA
SITE_TEXT=C77.2 Intra-abdominal LymphNodes 27 23 6.28 3.78 51.3
SITE_TEXT=C77.3 Lymph Nodes of axilla or arm 26 11 NA 21.06 NA
SITE_TEXT=C77.4 Lymph Nodes: Leg 20 12 25.03 13.11 NA
SITE_TEXT=C77.5 Pelvic Lymph Nodes 6 6 1.97 1.18 NA
SITE_TEXT=C77.8 Lymph Nodes: multiple region 226 117 28.25 23.10 NA
SITE_TEXT=C77.9 Lymph Node NOS 271 165 19.48 14.29 29.8
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
SITE_TEXT=C01.9 Tongue: Base NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.800 0.179 0.5161 1
24 1 2 0.267 0.226 0.0507 1
36 1 0 0.267 0.226 0.0507 1
48 1 0 0.267 0.226 0.0507 1
60 1 0 0.267 0.226 0.0507 1
SITE_TEXT=C02.1 Tongue: Border, Tip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
SITE_TEXT=C02.9 Tongue: NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C03.0 Gum: Upper
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C03.9 Gum NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
SITE_TEXT=C04.9 Floor of Mouth NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C05.0 Hard Palate
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 5 0.583 0.142 0.362 0.941
24 5 0 0.583 0.142 0.362 0.941
36 5 0 0.583 0.142 0.362 0.941
48 3 0 0.583 0.142 0.362 0.941
60 3 0 0.583 0.142 0.362 0.941
SITE_TEXT=C05.1 Soft Palate NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 3 0.667 0.157 0.42 1.000
24 3 1 0.556 0.166 0.31 0.997
36 2 0 0.556 0.166 0.31 0.997
48 2 0 0.556 0.166 0.31 0.997
SITE_TEXT=C05.8 Palate: Overlapping
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12.000 1.000 1.000 0.500 0.354 0.125 1.000
SITE_TEXT=C05.9 Palate NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 1 0.667 0.272 0.2995 1
24 2 0 0.667 0.272 0.2995 1
36 2 0 0.667 0.272 0.2995 1
48 2 0 0.667 0.272 0.2995 1
60 1 1 0.333 0.272 0.0673 1
120 1 0 0.333 0.272 0.0673 1
SITE_TEXT=C06.0 Cheek Mucosa
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 2 0.333 0.272 0.0673 1
24 1 0 0.333 0.272 0.0673 1
36 1 0 0.333 0.272 0.0673 1
SITE_TEXT=C06.1 Mouth: Vestibule
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C06.9 Mouth NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C07.9 Parotid Gland
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
SITE_TEXT=C09.8 Tonsil: Overlapping
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
SITE_TEXT=C09.9 Tonsil NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 3 0.593 0.185 0.322 1
24 4 0 0.593 0.185 0.322 1
36 2 0 0.593 0.185 0.322 1
48 2 0 0.593 0.185 0.322 1
60 2 0 0.593 0.185 0.322 1
120 1 0 0.593 0.185 0.322 1
SITE_TEXT=C11.1 Nasopharynx: Poster Wall
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
SITE_TEXT=C14.2 Waldeyer Ring
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.426 1
24 2 1 0.50 0.250 0.188 1
36 2 0 0.50 0.250 0.188 1
48 1 0 0.50 0.250 0.188 1
60 1 0 0.50 0.250 0.188 1
120 1 0 0.50 0.250 0.188 1
SITE_TEXT=C30.0 Nasal Cavity
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 354 168 0.696 0.0197 0.658 0.735
24 273 38 0.617 0.0212 0.577 0.660
36 215 15 0.581 0.0219 0.540 0.626
48 166 13 0.543 0.0229 0.500 0.590
60 132 2 0.536 0.0231 0.493 0.583
120 33 8 0.489 0.0269 0.439 0.545
SITE_TEXT=C37.9 Thymus
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 2 0.50 0.250 0.1877 1
24 1 1 0.25 0.217 0.0458 1
36 1 0 0.25 0.217 0.0458 1
48 1 0 0.25 0.217 0.0458 1
60 1 0 0.25 0.217 0.0458 1
SITE_TEXT=C42.2 Spleen
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.4259 1
24 3 0 0.75 0.217 0.4259 1
36 2 1 0.50 0.250 0.1877 1
48 1 1 0.25 0.217 0.0458 1
60 1 0 0.25 0.217 0.0458 1
120 1 0 0.25 0.217 0.0458 1
SITE_TEXT=C44.0 Skin of lip, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 1 0.974 0.0260 0.924 1.000
24 21 4 0.838 0.0669 0.717 0.980
36 17 2 0.752 0.0833 0.605 0.935
48 15 0 0.752 0.0833 0.605 0.935
60 9 1 0.694 0.0949 0.531 0.908
120 4 0 0.694 0.0949 0.531 0.908
SITE_TEXT=C44.1 Eyelid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 30 1 0.968 0.0317 0.908 1.000
24 23 3 0.864 0.0633 0.749 0.997
36 20 0 0.864 0.0633 0.749 0.997
48 19 0 0.864 0.0633 0.749 0.997
60 12 3 0.711 0.0964 0.545 0.928
120 4 2 0.533 0.1307 0.330 0.862
SITE_TEXT=C44.2 External ear
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 43 2 0.957 0.0296 0.901 1.000
24 38 0 0.957 0.0296 0.901 1.000
36 32 2 0.905 0.0457 0.819 0.999
48 23 4 0.787 0.0679 0.665 0.932
60 18 0 0.787 0.0679 0.665 0.932
120 4 3 0.517 0.1440 0.299 0.892
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 621 25 0.963 0.0072 0.949 0.978
24 527 21 0.929 0.0102 0.909 0.949
36 460 14 0.903 0.0120 0.880 0.927
48 369 15 0.871 0.0142 0.843 0.899
60 312 11 0.843 0.0160 0.812 0.875
120 73 24 0.739 0.0257 0.690 0.791
SITE_TEXT=C44.4 Skin of scalp and neck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 346 21 0.947 0.0113 0.925 0.969
24 307 12 0.914 0.0144 0.886 0.942
36 258 10 0.882 0.0171 0.849 0.916
48 220 3 0.871 0.0181 0.836 0.907
60 194 6 0.846 0.0201 0.808 0.887
120 55 17 0.736 0.0318 0.676 0.801
SITE_TEXT=C44.5 Skin of trunk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1421 113 0.931 0.00626 0.919 0.944
24 1217 55 0.893 0.00784 0.878 0.908
36 1029 48 0.856 0.00918 0.838 0.874
48 893 28 0.831 0.01003 0.812 0.851
60 729 36 0.795 0.01123 0.774 0.818
120 181 65 0.686 0.01663 0.654 0.719
SITE_TEXT=C44.6 Skin of upper limb and shoulder
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 706 58 0.928 0.00912 0.910 0.946
24 597 37 0.877 0.01189 0.854 0.900
36 498 26 0.836 0.01375 0.810 0.864
48 410 21 0.798 0.01544 0.768 0.829
60 344 12 0.773 0.01655 0.741 0.806
120 82 37 0.648 0.02454 0.602 0.698
SITE_TEXT=C44.7 Skin of lower limb and hip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 988 82 0.928 0.00767 0.913 0.943
24 828 72 0.857 0.01070 0.837 0.879
36 703 38 0.816 0.01210 0.793 0.840
48 577 29 0.779 0.01334 0.754 0.806
60 466 20 0.750 0.01439 0.722 0.778
120 105 50 0.606 0.02326 0.562 0.653
SITE_TEXT=C44.8 Overlapping lesion of skin
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 650 80 0.896 0.0110 0.874 0.918
24 539 59 0.811 0.0145 0.783 0.840
36 446 36 0.753 0.0164 0.722 0.786
48 360 25 0.709 0.0177 0.675 0.744
60 280 21 0.664 0.0191 0.627 0.702
120 52 39 0.506 0.0280 0.454 0.564
SITE_TEXT=C44.9 Skin, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3652 462 0.895 0.00461 0.886 0.905
24 2990 279 0.823 0.00594 0.812 0.835
36 2342 207 0.762 0.00686 0.749 0.775
48 1845 144 0.711 0.00760 0.696 0.726
60 1443 90 0.673 0.00819 0.657 0.689
120 305 186 0.532 0.01204 0.509 0.556
SITE_TEXT=C50.0 Nipple
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C51.9 Vulva, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5 0 1.0 0.000 1.000 1
24 4 1 0.8 0.179 0.516 1
36 4 0 0.8 0.179 0.516 1
48 4 0 0.8 0.179 0.516 1
60 4 0 0.8 0.179 0.516 1
SITE_TEXT=C52.9 Vagina, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 1 0.5 0.354 0.125 1
24 1 0 0.5 0.354 0.125 1
36 1 0 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
60 1 0 0.5 0.354 0.125 1
SITE_TEXT=C60.0 Prepuce
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 2 0 1 0 1 1
48 2 0 1 0 1 1
60 1 0 1 0 1 1
SITE_TEXT=C60.9 Penis
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 2 0 1 0 1 1
48 2 0 1 0 1 1
60 1 0 1 0 1 1
SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 48 18 0.743 0.0524 0.647 0.853
24 37 7 0.628 0.0596 0.522 0.757
36 30 4 0.559 0.0623 0.450 0.696
48 28 1 0.541 0.0629 0.431 0.679
60 27 1 0.522 0.0636 0.411 0.662
120 8 2 0.481 0.0647 0.370 0.626
SITE_TEXT=C77.1 Intrathoracic Lymph Nodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 79 13 0.861 0.0358 0.794 0.934
24 60 17 0.674 0.0490 0.585 0.777
36 52 2 0.651 0.0499 0.560 0.757
48 47 2 0.625 0.0512 0.533 0.734
60 37 2 0.597 0.0526 0.502 0.710
120 13 2 0.562 0.0551 0.464 0.681
SITE_TEXT=C77.2 Intra-abdominal LymphNodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 18 0.3009 0.0926 0.1647 0.550
24 6 1 0.2579 0.0888 0.1314 0.506
36 6 0 0.2579 0.0888 0.1314 0.506
48 6 0 0.2579 0.0888 0.1314 0.506
60 4 2 0.1720 0.0772 0.0713 0.415
120 1 2 0.0645 0.0571 0.0114 0.366
SITE_TEXT=C77.3 Lymph Nodes of axilla or arm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 7 0.720 0.0898 0.564 0.919
24 14 2 0.632 0.0980 0.467 0.857
36 10 2 0.538 0.1036 0.369 0.785
48 9 0 0.538 0.1036 0.369 0.785
60 9 0 0.538 0.1036 0.369 0.785
120 5 0 0.538 0.1036 0.369 0.785
SITE_TEXT=C77.4 Lymph Nodes: Leg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 6 0.684 0.107 0.504 0.929
24 9 3 0.526 0.115 0.344 0.806
36 7 2 0.409 0.115 0.236 0.710
48 6 1 0.351 0.113 0.187 0.658
60 6 0 0.351 0.113 0.187 0.658
120 3 0 0.351 0.113 0.187 0.658
SITE_TEXT=C77.5 Pelvic Lymph Nodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12.000 2.000 4.000 0.333 0.192 0.108 1.000
SITE_TEXT=C77.8 Lymph Nodes: multiple region
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 142 73 0.668 0.0318 0.609 0.734
24 110 23 0.555 0.0341 0.492 0.626
36 84 13 0.488 0.0347 0.425 0.561
48 66 5 0.457 0.0352 0.393 0.531
60 60 0 0.457 0.0352 0.393 0.531
120 15 3 0.420 0.0384 0.351 0.503
SITE_TEXT=C77.9 Lymph Node NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 144 107 0.589 0.0306 0.532 0.652
24 108 27 0.476 0.0316 0.418 0.542
36 84 18 0.394 0.0315 0.337 0.461
48 69 2 0.385 0.0314 0.328 0.452
60 62 0 0.385 0.0314 0.328 0.452
120 15 10 0.301 0.0347 0.240 0.378
## Univariable Cox Proportional Hazard Model for: SITE_TEXT
Loglik converged before variable 11,19,36,60,64 ; beta may be infinite. X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 10 12 13 14 15 18 20 21 25 30 31 40 42 54 55 56 57 61 62 63 65 73
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
SITE_TEXTC00.1 External Lip: Lower NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA 0.000e+00 NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC00.9 Lip NOS NA NA 0.000e+00 NA NA
SITE_TEXTC01.9 Tongue: Base NOS 2.672e-01 1.306e+00 5.826e-01 0.459 0.646559
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.1 Tongue: Border, Tip -1.375e+01 1.072e-06 7.517e+02 -0.018 0.985411
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA 0.000e+00 NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC02.9 Tongue: NOS 3.574e+00 3.565e+01 1.007e+00 3.548 0.000388 ***
SITE_TEXTC03.0 Gum: Upper 1.259e+00 3.521e+00 1.003e+00 1.255 0.209616
SITE_TEXTC03.1 Gum: Lower NA NA 0.000e+00 NA NA
SITE_TEXTC03.9 Gum NOS -1.373e+01 1.090e-06 1.115e+03 -0.012 0.990176
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.9 Floor of Mouth NOS 1.594e+00 4.925e+00 1.003e+00 1.589 0.112100
SITE_TEXTC05.0 Hard Palate -4.223e-01 6.555e-01 4.540e-01 -0.930 0.352251
SITE_TEXTC05.1 Soft Palate NOS -2.067e-01 8.132e-01 5.061e-01 -0.408 0.682924
SITE_TEXTC05.2 Uvula NA NA 0.000e+00 NA NA
SITE_TEXTC05.8 Palate: Overlapping 1.354e+00 3.872e+00 7.117e-01 1.902 0.057159 .
SITE_TEXTC05.9 Palate NOS -4.650e-01 6.281e-01 7.115e-01 -0.653 0.513445
SITE_TEXTC06.0 Cheek Mucosa 6.656e-01 1.946e+00 7.115e-01 0.936 0.349492
SITE_TEXTC06.1 Mouth: Vestibule 2.118e+00 8.311e+00 7.123e-01 2.973 0.002952 **
SITE_TEXTC06.2 Retromolar Area NA NA 0.000e+00 NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC06.9 Mouth NOS 1.561e+00 4.763e+00 1.003e+00 1.556 0.119804
SITE_TEXTC07.9 Parotid Gland 1.016e+00 2.762e+00 1.003e+00 1.013 0.311168
SITE_TEXTC09.8 Tonsil: Overlapping 8.025e-01 2.231e+00 1.003e+00 0.800 0.423753
SITE_TEXTC09.9 Tonsil NOS -6.770e-01 5.081e-01 5.826e-01 -1.162 0.245198
SITE_TEXTC11.1 Nasopharynx: Poster Wall -1.373e+01 1.090e-06 7.913e+02 -0.017 0.986157
SITE_TEXTC14.2 Waldeyer Ring -5.050e-01 6.035e-01 7.114e-01 -0.710 0.477800
SITE_TEXTC30.0 Nasal Cavity -4.643e-01 6.286e-01 1.007e-01 -4.610 4.04e-06 ***
SITE_TEXTC37.9 Thymus 2.903e-01 1.337e+00 5.826e-01 0.498 0.618347
SITE_TEXTC42.0 Blood NA NA 0.000e+00 NA NA
SITE_TEXTC42.2 Spleen -1.522e-01 8.589e-01 5.826e-01 -0.261 0.793971
SITE_TEXTC42.4 Hematopoietic NOS NA NA 0.000e+00 NA NA
SITE_TEXTC44.0 Skin of lip, NOS -1.378e+00 2.520e-01 3.621e-01 -3.807 0.000141 ***
SITE_TEXTC44.1 Eyelid -1.291e+00 2.750e-01 3.423e-01 -3.772 0.000162 ***
SITE_TEXTC44.2 External ear -1.480e+00 2.276e-01 3.114e-01 -4.753 2.01e-06 ***
SITE_TEXTC44.3 Skin of ear and unspecified parts of face -1.836e+00 1.595e-01 1.218e-01 -15.065 < 2e-16 ***
SITE_TEXTC44.4 Skin of scalp and neck -1.785e+00 1.678e-01 1.420e-01 -12.570 < 2e-16 ***
SITE_TEXTC44.5 Skin of trunk -1.558e+00 2.106e-01 9.441e-02 -16.497 < 2e-16 ***
SITE_TEXTC44.6 Skin of upper limb and shoulder -1.420e+00 2.417e-01 1.057e-01 -13.435 < 2e-16 ***
SITE_TEXTC44.7 Skin of lower limb and hip -1.332e+00 2.638e-01 9.721e-02 -13.708 < 2e-16 ***
SITE_TEXTC44.8 Overlapping lesion of skin -9.998e-01 3.679e-01 9.928e-02 -10.071 < 2e-16 ***
SITE_TEXTC44.9 Skin, NOS -1.041e+00 3.530e-01 8.236e-02 -12.643 < 2e-16 ***
SITE_TEXTC50.0 Nipple 1.626e+00 5.086e+00 1.003e+00 1.621 0.105062
SITE_TEXTC51.0 Labium majus NA NA 0.000e+00 NA NA
SITE_TEXTC51.1 Labium minus NA NA 0.000e+00 NA NA
SITE_TEXTC51.2 Clitoris NA NA 0.000e+00 NA NA
SITE_TEXTC51.8 Overlapping lesion of vulva NA NA 0.000e+00 NA NA
SITE_TEXTC51.9 Vulva, NOS -1.157e+00 3.145e-01 7.114e-01 -1.626 0.103925
SITE_TEXTC52.9 Vagina, NOS 4.953e-01 1.641e+00 7.114e-01 0.696 0.486262
SITE_TEXTC60.0 Prepuce -1.374e+01 1.082e-06 6.561e+02 -0.021 0.983295
SITE_TEXTC60.1 Glans penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.2 Body of penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.8 Overlapping lesion of penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.9 Penis -1.374e+01 1.081e-06 5.454e+02 -0.025 0.979905
SITE_TEXTC63.2 Scrotum, NOS NA NA 0.000e+00 NA NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck -5.598e-01 5.713e-01 1.907e-01 -2.935 0.003339 **
SITE_TEXTC77.1 Intrathoracic Lymph Nodes -8.607e-01 4.228e-01 1.800e-01 -4.782 1.73e-06 ***
SITE_TEXTC77.2 Intra-abdominal LymphNodes 7.149e-01 2.044e+00 2.226e-01 3.211 0.001322 **
SITE_TEXTC77.3 Lymph Nodes of axilla or arm -7.052e-01 4.940e-01 3.115e-01 -2.264 0.023586 *
SITE_TEXTC77.4 Lymph Nodes: Leg -1.737e-01 8.406e-01 2.990e-01 -0.581 0.561427
SITE_TEXTC77.5 Pelvic Lymph Nodes 1.568e+00 4.799e+00 4.159e-01 3.771 0.000163 ***
SITE_TEXTC77.8 Lymph Nodes: multiple region -3.031e-01 7.385e-01 1.209e-01 -2.508 0.012143 *
SITE_TEXTC77.9 Lymph Node NOS NA NA 0.000e+00 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC00.1 External Lip: Lower NOS NA NA NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA NA NA
SITE_TEXTC00.9 Lip NOS NA NA NA NA
SITE_TEXTC01.9 Tongue: Base NOS 1.306e+00 7.655e-01 0.41696 4.0923
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA NA NA
SITE_TEXTC02.1 Tongue: Border, Tip 1.072e-06 9.327e+05 0.00000 Inf
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA NA NA
SITE_TEXTC02.9 Tongue: NOS 3.565e+01 2.805e-02 4.95179 256.6127
SITE_TEXTC03.0 Gum: Upper 3.521e+00 2.840e-01 0.49279 25.1597
SITE_TEXTC03.1 Gum: Lower NA NA NA NA
SITE_TEXTC03.9 Gum NOS 1.090e-06 9.176e+05 0.00000 Inf
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA NA NA
SITE_TEXTC04.9 Floor of Mouth NOS 4.925e+00 2.030e-01 0.68906 35.2029
SITE_TEXTC05.0 Hard Palate 6.555e-01 1.525e+00 0.26927 1.5959
SITE_TEXTC05.1 Soft Palate NOS 8.132e-01 1.230e+00 0.30161 2.1928
SITE_TEXTC05.2 Uvula NA NA NA NA
SITE_TEXTC05.8 Palate: Overlapping 3.872e+00 2.583e-01 0.95965 15.6193
SITE_TEXTC05.9 Palate NOS 6.281e-01 1.592e+00 0.15574 2.5336
SITE_TEXTC06.0 Cheek Mucosa 1.946e+00 5.140e-01 0.48248 7.8465
SITE_TEXTC06.1 Mouth: Vestibule 8.311e+00 1.203e-01 2.05735 33.5722
SITE_TEXTC06.2 Retromolar Area NA NA NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA NA NA
SITE_TEXTC06.9 Mouth NOS 4.763e+00 2.099e-01 0.66647 34.0461
SITE_TEXTC07.9 Parotid Gland 2.762e+00 3.620e-01 0.38664 19.7341
SITE_TEXTC09.8 Tonsil: Overlapping 2.231e+00 4.482e-01 0.31232 15.9374
SITE_TEXTC09.9 Tonsil NOS 5.081e-01 1.968e+00 0.16221 1.5917
SITE_TEXTC11.1 Nasopharynx: Poster Wall 1.090e-06 9.176e+05 0.00000 Inf
SITE_TEXTC14.2 Waldeyer Ring 6.035e-01 1.657e+00 0.14966 2.4336
SITE_TEXTC30.0 Nasal Cavity 6.286e-01 1.591e+00 0.51599 0.7658
SITE_TEXTC37.9 Thymus 1.337e+00 7.481e-01 0.42671 4.1877
SITE_TEXTC42.0 Blood NA NA NA NA
SITE_TEXTC42.2 Spleen 8.589e-01 1.164e+00 0.27416 2.6905
SITE_TEXTC42.4 Hematopoietic NOS NA NA NA NA
SITE_TEXTC44.0 Skin of lip, NOS 2.520e-01 3.968e+00 0.12396 0.5124
SITE_TEXTC44.1 Eyelid 2.750e-01 3.637e+00 0.14057 0.5379
SITE_TEXTC44.2 External ear 2.276e-01 4.394e+00 0.12362 0.4191
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 1.595e-01 6.269e+00 0.12562 0.2025
SITE_TEXTC44.4 Skin of scalp and neck 1.678e-01 5.959e+00 0.12705 0.2217
SITE_TEXTC44.5 Skin of trunk 2.106e-01 4.747e+00 0.17506 0.2535
SITE_TEXTC44.6 Skin of upper limb and shoulder 2.417e-01 4.137e+00 0.19647 0.2973
SITE_TEXTC44.7 Skin of lower limb and hip 2.638e-01 3.790e+00 0.21806 0.3192
SITE_TEXTC44.8 Overlapping lesion of skin 3.679e-01 2.718e+00 0.30289 0.4470
SITE_TEXTC44.9 Skin, NOS 3.530e-01 2.833e+00 0.30036 0.4148
SITE_TEXTC50.0 Nipple 5.086e+00 1.966e-01 0.71152 36.3528
SITE_TEXTC51.0 Labium majus NA NA NA NA
SITE_TEXTC51.1 Labium minus NA NA NA NA
SITE_TEXTC51.2 Clitoris NA NA NA NA
SITE_TEXTC51.8 Overlapping lesion of vulva NA NA NA NA
SITE_TEXTC51.9 Vulva, NOS 3.145e-01 3.180e+00 0.07799 1.2681
SITE_TEXTC52.9 Vagina, NOS 1.641e+00 6.094e-01 0.40696 6.6177
SITE_TEXTC60.0 Prepuce 1.082e-06 9.244e+05 0.00000 Inf
SITE_TEXTC60.1 Glans penis NA NA NA NA
SITE_TEXTC60.2 Body of penis NA NA NA NA
SITE_TEXTC60.8 Overlapping lesion of penis NA NA NA NA
SITE_TEXTC60.9 Penis 1.081e-06 9.248e+05 0.00000 Inf
SITE_TEXTC63.2 Scrotum, NOS NA NA NA NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck 5.713e-01 1.750e+00 0.39314 0.8303
SITE_TEXTC77.1 Intrathoracic Lymph Nodes 4.228e-01 2.365e+00 0.29715 0.6017
SITE_TEXTC77.2 Intra-abdominal LymphNodes 2.044e+00 4.893e-01 1.32122 3.1620
SITE_TEXTC77.3 Lymph Nodes of axilla or arm 4.940e-01 2.024e+00 0.26829 0.9097
SITE_TEXTC77.4 Lymph Nodes: Leg 8.406e-01 1.190e+00 0.46778 1.5105
SITE_TEXTC77.5 Pelvic Lymph Nodes 4.799e+00 2.084e-01 2.12393 10.8447
SITE_TEXTC77.8 Lymph Nodes: multiple region 7.385e-01 1.354e+00 0.58273 0.9359
SITE_TEXTC77.9 Lymph Node NOS NA NA NA NA
Concordance= 0.63 (se = 0.005 )
Rsquare= 0.056 (max possible= 0.993 )
Likelihood ratio test= 689.9 on 43 df, p=0
Wald test = 825.5 on 43 df, p=0
Score (logrank) test = 1096 on 43 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 31 rows containing missing values (geom_errorbar).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 44.



Histology
#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)
Grade
#uni_var(test_var = "GRADE_F", data_imp = data)
Clinical T Stage
uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
322 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 6035 2015 NA 137.7 NA
TNM_CLIN_T=c1 1675 130 NA NA NA
TNM_CLIN_T=c1A 248 15 NA NA NA
TNM_CLIN_T=c1B 118 12 NA NA NA
TNM_CLIN_T=c2 811 164 NA 109.7 NA
TNM_CLIN_T=c2A 82 7 NA NA NA
TNM_CLIN_T=c2B 112 19 NA NA NA
TNM_CLIN_T=c3 399 160 59.4 50.8 95.0
TNM_CLIN_T=c4 438 216 43.9 37.4 55.5
TNM_CLIN_T=cX 1758 591 155.1 145.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
322 observations deleted due to missingness
TNM_CLIN_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4498 946 0.836 0.00489 0.826 0.845
24 3699 391 0.760 0.00576 0.749 0.771
36 3077 205 0.716 0.00621 0.703 0.728
48 2583 126 0.684 0.00653 0.672 0.697
60 2167 92 0.658 0.00682 0.645 0.672
120 547 231 0.552 0.00892 0.535 0.570
TNM_CLIN_T=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1364 22 0.985 0.00309 0.979 0.991
24 1163 21 0.969 0.00460 0.960 0.979
36 921 23 0.949 0.00621 0.937 0.961
48 682 25 0.919 0.00835 0.903 0.936
60 475 13 0.899 0.00990 0.880 0.919
120 35 26 0.783 0.03065 0.725 0.846
TNM_CLIN_T=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 209 3 0.987 0.00724 0.973 1.000
24 164 3 0.972 0.01143 0.950 0.995
36 122 6 0.930 0.02003 0.892 0.970
48 88 2 0.911 0.02378 0.865 0.959
60 49 1 0.893 0.02926 0.837 0.952
TNM_CLIN_T=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 94 0 1.000 0.0000 1.000 1.000
24 69 8 0.907 0.0315 0.847 0.971
36 46 1 0.890 0.0351 0.824 0.961
48 36 0 0.890 0.0351 0.824 0.961
60 22 2 0.827 0.0547 0.726 0.941
TNM_CLIN_T=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 651 34 0.954 0.0077 0.939 0.969
24 541 30 0.907 0.0112 0.885 0.929
36 421 31 0.851 0.0143 0.823 0.879
48 297 26 0.792 0.0174 0.759 0.827
60 210 19 0.733 0.0207 0.694 0.775
120 13 24 0.512 0.0535 0.417 0.628
TNM_CLIN_T=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 65 1 0.988 0.0124 0.963 1.000
24 54 2 0.953 0.0266 0.903 1.000
36 29 3 0.886 0.0456 0.801 0.980
48 18 0 0.886 0.0456 0.801 0.980
60 12 1 0.818 0.0778 0.678 0.985
TNM_CLIN_T=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 86 2 0.980 0.0143 0.952 1.000
24 62 5 0.918 0.0300 0.861 0.978
36 39 7 0.798 0.0499 0.705 0.902
48 26 4 0.701 0.0632 0.587 0.836
60 18 0 0.701 0.0632 0.587 0.836
TNM_CLIN_T=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 318 43 0.886 0.0163 0.855 0.919
24 230 50 0.738 0.0235 0.694 0.786
36 160 28 0.641 0.0267 0.590 0.695
48 112 19 0.558 0.0293 0.503 0.618
60 67 11 0.490 0.0321 0.431 0.558
120 3 9 0.359 0.0479 0.276 0.466
TNM_CLIN_T=c4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 312 76 0.816 0.0192 0.779 0.854
24 238 45 0.691 0.0236 0.647 0.739
36 165 42 0.562 0.0263 0.513 0.616
48 112 21 0.484 0.0277 0.433 0.542
60 71 14 0.415 0.0294 0.361 0.477
120 4 18 0.241 0.0434 0.169 0.343
TNM_CLIN_T=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1506 117 0.931 0.00619 0.919 0.943
24 1339 101 0.866 0.00844 0.850 0.883
36 1222 86 0.810 0.00983 0.791 0.830
48 1122 65 0.766 0.01070 0.746 0.788
60 1021 52 0.730 0.01131 0.708 0.753
120 360 140 0.601 0.01395 0.574 0.629
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 21 22
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
n= 11676, number of events= 3329
(322 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Tc0 NA NA 0.00000 NA NA
TNM_CLIN_Tc1 -1.42616 0.24023 0.09060 -15.741 < 2e-16 ***
TNM_CLIN_Tc1A -1.59767 0.20237 0.25925 -6.163 7.15e-10 ***
TNM_CLIN_Tc1B -1.01564 0.36217 0.28961 -3.507 0.000453 ***
TNM_CLIN_Tc1C NA NA 0.00000 NA NA
TNM_CLIN_Tc1MI NA NA 0.00000 NA NA
TNM_CLIN_Tc2 -0.43623 0.64647 0.08134 -5.363 8.17e-08 ***
TNM_CLIN_Tc2A -1.16835 0.31088 0.37869 -3.085 0.002034 **
TNM_CLIN_Tc2B -0.45059 0.63725 0.23060 -1.954 0.050705 .
TNM_CLIN_Tc2C NA NA 0.00000 NA NA
TNM_CLIN_Tc2D NA NA 0.00000 NA NA
TNM_CLIN_Tc3 0.34891 1.41752 0.08236 4.237 2.27e-05 ***
TNM_CLIN_Tc3A NA NA 0.00000 NA NA
TNM_CLIN_Tc3B NA NA 0.00000 NA NA
TNM_CLIN_Tc4 0.62965 1.87695 0.07186 8.762 < 2e-16 ***
TNM_CLIN_Tc4A NA NA 0.00000 NA NA
TNM_CLIN_Tc4B NA NA 0.00000 NA NA
TNM_CLIN_Tc4C NA NA 0.00000 NA NA
TNM_CLIN_Tc4D NA NA 0.00000 NA NA
TNM_CLIN_TcX -0.28428 0.75256 0.04701 -6.048 1.47e-09 ***
TNM_CLIN_TpA NA NA 0.00000 NA NA
TNM_CLIN_TpIS NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0 NA NA NA NA
TNM_CLIN_Tc1 0.2402 4.1627 0.2011 0.2869
TNM_CLIN_Tc1A 0.2024 4.9415 0.1217 0.3364
TNM_CLIN_Tc1B 0.3622 2.7611 0.2053 0.6389
TNM_CLIN_Tc1C NA NA NA NA
TNM_CLIN_Tc1MI NA NA NA NA
TNM_CLIN_Tc2 0.6465 1.5469 0.5512 0.7582
TNM_CLIN_Tc2A 0.3109 3.2167 0.1480 0.6530
TNM_CLIN_Tc2B 0.6372 1.5692 0.4055 1.0014
TNM_CLIN_Tc2C NA NA NA NA
TNM_CLIN_Tc2D NA NA NA NA
TNM_CLIN_Tc3 1.4175 0.7055 1.2062 1.6658
TNM_CLIN_Tc3A NA NA NA NA
TNM_CLIN_Tc3B NA NA NA NA
TNM_CLIN_Tc4 1.8769 0.5328 1.6304 2.1608
TNM_CLIN_Tc4A NA NA NA NA
TNM_CLIN_Tc4B NA NA NA NA
TNM_CLIN_Tc4C NA NA NA NA
TNM_CLIN_Tc4D NA NA NA NA
TNM_CLIN_TcX 0.7526 1.3288 0.6863 0.8252
TNM_CLIN_TpA NA NA NA NA
TNM_CLIN_TpIS NA NA NA NA
Concordance= 0.619 (se = 0.005 )
Rsquare= 0.052 (max possible= 0.993 )
Likelihood ratio test= 620.7 on 9 df, p=0
Wald test = 487.4 on 9 df, p=0
Score (logrank) test = 560.9 on 9 df, p=0
Removed 14 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_T



Clinical N Stage
uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
306 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 6034 2015 NA 137.69 NA
TNM_CLIN_N=c0 3401 501 NA NA NA
TNM_CLIN_N=c1 194 95 48.5 40.44 65.4
TNM_CLIN_N=c1A 10 4 NA 28.32 NA
TNM_CLIN_N=c1B 9 4 43.4 30.49 NA
TNM_CLIN_N=c2 33 19 36.7 33.12 NA
TNM_CLIN_N=c2A 1 0 NA NA NA
TNM_CLIN_N=c2B 6 4 30.3 7.52 NA
TNM_CLIN_N=c3 62 29 37.9 23.75 NA
TNM_CLIN_N=cX 1942 660 155.1 140.71 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
306 observations deleted due to missingness
TNM_CLIN_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4498 946 0.836 0.00489 0.826 0.845
24 3699 391 0.760 0.00576 0.749 0.771
36 3077 205 0.716 0.00621 0.703 0.728
48 2583 126 0.684 0.00653 0.672 0.697
60 2167 92 0.658 0.00682 0.645 0.672
120 547 231 0.552 0.00892 0.535 0.570
TNM_CLIN_N=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2766 99 0.968 0.00317 0.962 0.974
24 2275 115 0.925 0.00496 0.915 0.935
36 1730 103 0.879 0.00647 0.866 0.892
48 1270 69 0.839 0.00774 0.824 0.855
60 866 49 0.801 0.00916 0.783 0.819
120 53 66 0.646 0.02490 0.599 0.697
TNM_CLIN_N=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 138 34 0.815 0.0288 0.760 0.873
24 105 20 0.692 0.0352 0.626 0.765
36 79 15 0.591 0.0386 0.519 0.671
48 50 8 0.519 0.0415 0.443 0.607
60 30 9 0.414 0.0457 0.333 0.514
120 2 9 0.222 0.0560 0.136 0.364
TNM_CLIN_N=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.889 0.105 0.706 1.000
24 7 1 0.778 0.139 0.549 1.000
36 4 2 0.556 0.166 0.310 0.997
48 2 0 0.556 0.166 0.310 0.997
60 1 0 0.556 0.166 0.310 0.997
TNM_CLIN_N=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5 2 0.762 0.148 0.521 1
24 4 0 0.762 0.148 0.521 1
36 2 1 0.571 0.199 0.289 1
48 1 1 0.286 0.225 0.061 1
60 1 0 0.286 0.225 0.061 1
TNM_CLIN_N=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 5 0.842 0.0651 0.723 0.979
24 18 4 0.695 0.0855 0.546 0.885
36 12 3 0.563 0.0980 0.400 0.792
48 6 4 0.375 0.1006 0.222 0.635
60 3 1 0.300 0.1048 0.151 0.595
TNM_CLIN_N=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_CLIN_N=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 2 0.667 0.192 0.379 1
24 3 1 0.500 0.204 0.225 1
36 1 0 0.500 0.204 0.225 1
48 1 0 0.500 0.204 0.225 1
TNM_CLIN_N=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 42 14 0.763 0.0556 0.661 0.880
24 25 7 0.612 0.0681 0.493 0.762
36 19 2 0.560 0.0716 0.436 0.720
48 11 6 0.365 0.0797 0.238 0.560
60 8 0 0.365 0.0797 0.238 0.560
120 1 0 0.365 0.0797 0.238 0.560
TNM_CLIN_N=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1630 143 0.923 0.00621 0.911 0.935
24 1429 118 0.854 0.00838 0.838 0.870
36 1283 99 0.794 0.00973 0.775 0.813
48 1152 75 0.746 0.01058 0.726 0.767
60 1035 53 0.711 0.01114 0.689 0.733
120 359 142 0.584 0.01365 0.558 0.611
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_N
Loglik converged before variable 6 ; beta may be infinite. X matrix deemed to be singular; variable 8 10 11 12 13
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
n= 11692, number of events= 3331
(306 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Nc0 -7.539e-01 4.705e-01 5.015e-02 -15.033 < 2e-16 ***
TNM_CLIN_Nc1 6.026e-01 1.827e+00 1.052e-01 5.730 1.00e-08 ***
TNM_CLIN_Nc1A 3.008e-01 1.351e+00 5.006e-01 0.601 0.547862
TNM_CLIN_Nc1B 7.546e-01 2.127e+00 5.006e-01 1.507 0.131712
TNM_CLIN_Nc2 8.565e-01 2.355e+00 2.306e-01 3.714 0.000204 ***
TNM_CLIN_Nc2A -9.270e+00 9.418e-05 3.251e+02 -0.029 0.977249
TNM_CLIN_Nc2B 1.176e+00 3.241e+00 5.006e-01 2.349 0.018836 *
TNM_CLIN_Nc2C NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3 6.900e-01 1.994e+00 1.871e-01 3.687 0.000227 ***
TNM_CLIN_Nc3A NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3B NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3C NA NA 0.000e+00 NA NA
TNM_CLIN_Nc4 NA NA 0.000e+00 NA NA
TNM_CLIN_NcX -2.244e-01 7.990e-01 4.502e-02 -4.986 6.17e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0 4.705e-01 2.125e+00 4.265e-01 5.191e-01
TNM_CLIN_Nc1 1.827e+00 5.474e-01 1.487e+00 2.245e+00
TNM_CLIN_Nc1A 1.351e+00 7.402e-01 5.065e-01 3.603e+00
TNM_CLIN_Nc1B 2.127e+00 4.702e-01 7.973e-01 5.673e+00
TNM_CLIN_Nc2 2.355e+00 4.247e-01 1.498e+00 3.701e+00
TNM_CLIN_Nc2A 9.418e-05 1.062e+04 1.870e-281 4.743e+272
TNM_CLIN_Nc2B 3.241e+00 3.086e-01 1.215e+00 8.646e+00
TNM_CLIN_Nc2C NA NA NA NA
TNM_CLIN_Nc3 1.994e+00 5.016e-01 1.381e+00 2.877e+00
TNM_CLIN_Nc3A NA NA NA NA
TNM_CLIN_Nc3B NA NA NA NA
TNM_CLIN_Nc3C NA NA NA NA
TNM_CLIN_Nc4 NA NA NA NA
TNM_CLIN_NcX 7.990e-01 1.252e+00 7.315e-01 8.727e-01
Concordance= 0.601 (se = 0.005 )
Rsquare= 0.029 (max possible= 0.993 )
Likelihood ratio test= 348.6 on 9 df, p=0
Wald test = 334.1 on 9 df, p=0
Score (logrank) test = 356.5 on 9 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_N



Clinical Stage Group
uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
7 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1 1669 374 NA 158.32 NA
TNM_CLIN_STAGE_GROUP=1A 3925 494 NA NA NA
TNM_CLIN_STAGE_GROUP=1B 1385 270 NA 145.12 NA
TNM_CLIN_STAGE_GROUP=2 249 106 94.2 65.22 NA
TNM_CLIN_STAGE_GROUP=2A 304 102 NA 79.57 NA
TNM_CLIN_STAGE_GROUP=2B 563 244 63.4 51.35 86.1
TNM_CLIN_STAGE_GROUP=3 178 98 46.8 35.58 74.1
TNM_CLIN_STAGE_GROUP=3A 318 145 59.8 40.21 72.9
TNM_CLIN_STAGE_GROUP=3B 156 88 30.7 22.67 50.5
TNM_CLIN_STAGE_GROUP=4 559 359 24.3 18.60 27.8
TNM_CLIN_STAGE_GROUP=4A 457 276 30.4 24.15 41.4
TNM_CLIN_STAGE_GROUP=4A1 75 33 45.4 32.39 76.3
TNM_CLIN_STAGE_GROUP=4A2 31 13 40.0 23.75 NA
TNM_CLIN_STAGE_GROUP=4B 287 201 12.0 9.13 19.1
TNM_CLIN_STAGE_GROUP=N_A 31 8 NA NA NA
TNM_CLIN_STAGE_GROUP=99 1804 594 155.1 130.04 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
7 observations deleted due to missingness
TNM_CLIN_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1380 122 0.924 0.00666 0.911 0.937
24 1212 60 0.882 0.00827 0.866 0.898
36 1059 45 0.847 0.00940 0.829 0.866
48 929 33 0.820 0.01025 0.800 0.840
60 778 37 0.785 0.01131 0.763 0.807
120 208 70 0.678 0.01591 0.647 0.709
TNM_CLIN_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3295 93 0.974 0.00262 0.969 0.980
24 2795 101 0.943 0.00400 0.935 0.951
36 2285 75 0.916 0.00496 0.906 0.926
48 1822 58 0.890 0.00586 0.879 0.902
60 1436 44 0.867 0.00667 0.854 0.880
120 294 109 0.755 0.01250 0.731 0.780
TNM_CLIN_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1131 56 0.956 0.00570 0.945 0.968
24 961 49 0.912 0.00821 0.896 0.929
36 759 45 0.866 0.01032 0.846 0.886
48 584 40 0.815 0.01244 0.791 0.840
60 465 24 0.779 0.01397 0.752 0.807
120 85 49 0.629 0.02411 0.583 0.678
TNM_CLIN_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 183 44 0.816 0.0252 0.768 0.866
24 142 25 0.700 0.0305 0.642 0.762
36 118 13 0.633 0.0327 0.572 0.700
48 104 3 0.616 0.0333 0.554 0.685
60 95 3 0.598 0.0339 0.535 0.668
120 20 16 0.453 0.0436 0.375 0.547
TNM_CLIN_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 234 39 0.866 0.0200 0.828 0.906
24 187 23 0.777 0.0251 0.730 0.828
36 147 14 0.714 0.0282 0.661 0.772
48 108 12 0.650 0.0312 0.591 0.714
60 86 7 0.606 0.0333 0.544 0.674
120 16 6 0.551 0.0373 0.483 0.629
TNM_CLIN_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 435 80 0.851 0.0154 0.821 0.882
24 325 65 0.717 0.0201 0.679 0.757
36 233 39 0.624 0.0223 0.582 0.670
48 172 26 0.549 0.0240 0.504 0.598
60 125 11 0.508 0.0252 0.461 0.560
120 12 23 0.325 0.0398 0.256 0.413
TNM_CLIN_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 129 39 0.772 0.0321 0.712 0.838
24 104 18 0.662 0.0366 0.594 0.737
36 83 15 0.564 0.0389 0.493 0.646
48 68 9 0.500 0.0400 0.427 0.585
60 51 7 0.444 0.0407 0.371 0.532
120 10 9 0.320 0.0488 0.237 0.432
TNM_CLIN_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 226 49 0.831 0.0220 0.789 0.876
24 177 33 0.705 0.0276 0.653 0.761
36 131 31 0.575 0.0309 0.518 0.639
48 108 8 0.538 0.0315 0.480 0.604
60 77 7 0.499 0.0325 0.439 0.567
120 12 16 0.373 0.0374 0.307 0.454
TNM_CLIN_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 106 41 0.729 0.0362 0.661 0.803
24 75 23 0.563 0.0414 0.487 0.650
36 56 11 0.477 0.0424 0.401 0.568
48 45 6 0.425 0.0427 0.349 0.518
60 30 4 0.383 0.0435 0.306 0.478
120 5 3 0.335 0.0460 0.256 0.439
TNM_CLIN_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 320 206 0.621 0.0209 0.581 0.663
24 243 56 0.508 0.0219 0.467 0.553
36 185 38 0.427 0.0220 0.386 0.472
48 154 22 0.375 0.0219 0.334 0.420
60 139 5 0.362 0.0219 0.322 0.408
120 35 28 0.258 0.0238 0.215 0.309
TNM_CLIN_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 296 135 0.697 0.0218 0.655 0.741
24 207 61 0.547 0.0241 0.502 0.597
36 156 26 0.474 0.0248 0.428 0.525
48 119 15 0.426 0.0253 0.379 0.478
60 95 12 0.381 0.0257 0.334 0.435
120 21 24 0.242 0.0295 0.191 0.307
TNM_CLIN_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 56 8 0.888 0.0373 0.818 0.964
24 43 7 0.771 0.0525 0.675 0.881
36 26 9 0.590 0.0665 0.474 0.736
48 11 4 0.453 0.0805 0.320 0.642
60 7 3 0.320 0.0862 0.189 0.543
TNM_CLIN_STAGE_GROUP=4A2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 6 0.806 0.0710 0.679 0.958
24 12 4 0.628 0.0977 0.463 0.852
36 8 1 0.571 0.1042 0.400 0.817
48 4 2 0.381 0.1301 0.195 0.744
60 3 0 0.381 0.1301 0.195 0.744
TNM_CLIN_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 128 138 0.497 0.0304 0.441 0.561
24 92 27 0.387 0.0302 0.332 0.451
36 65 18 0.308 0.0292 0.256 0.371
48 43 8 0.268 0.0287 0.217 0.330
60 30 4 0.240 0.0290 0.189 0.304
120 7 5 0.188 0.0308 0.136 0.259
TNM_CLIN_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 6 0.800 0.0730 0.669 0.957
24 19 1 0.762 0.0789 0.622 0.933
36 14 1 0.714 0.0871 0.562 0.907
48 9 0 0.714 0.0871 0.562 0.907
60 5 0 0.714 0.0871 0.562 0.907
TNM_CLIN_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1372 225 0.867 0.00828 0.851 0.883
24 1139 118 0.789 0.01020 0.769 0.809
36 991 58 0.747 0.01104 0.726 0.769
48 866 48 0.709 0.01175 0.686 0.732
60 736 40 0.674 0.01241 0.650 0.699
120 237 92 0.551 0.01596 0.521 0.583
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 18 20
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n= 11991, number of events= 3405
(7 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_STAGE_GROUP1 -0.47472 0.62206 0.06602 -7.191 6.45e-13 ***
TNM_CLIN_STAGE_GROUP1A -0.95424 0.38511 0.06098 -15.648 < 2e-16 ***
TNM_CLIN_STAGE_GROUP1B -0.46913 0.62554 0.07350 -6.383 1.74e-10 ***
TNM_CLIN_STAGE_GROUP1C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP2 0.36459 1.43993 0.10547 3.457 0.000546 ***
TNM_CLIN_STAGE_GROUP2A 0.14742 1.15884 0.10725 1.375 0.169266
TNM_CLIN_STAGE_GROUP2B 0.50067 1.64983 0.07631 6.561 5.34e-11 ***
TNM_CLIN_STAGE_GROUP2C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP3 0.68835 1.99043 0.10911 6.309 2.81e-10 ***
TNM_CLIN_STAGE_GROUP3A 0.55357 1.73945 0.09277 5.967 2.42e-09 ***
TNM_CLIN_STAGE_GROUP3B 0.85760 2.35749 0.11440 7.496 6.56e-14 ***
TNM_CLIN_STAGE_GROUP3C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4 1.02945 2.79953 0.06695 15.376 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A 0.96845 2.63386 0.07309 13.251 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A1 0.67165 1.95746 0.17917 3.749 0.000178 ***
TNM_CLIN_STAGE_GROUP4A2 0.77113 2.16222 0.28060 2.748 0.005994 **
TNM_CLIN_STAGE_GROUP4B 1.43451 4.19758 0.08199 17.495 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUPN_A 0.09770 1.10263 0.35606 0.274 0.783782
TNM_CLIN_STAGE_GROUP99 NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1 0.6221 1.6076 0.5466 0.7080
TNM_CLIN_STAGE_GROUP1A 0.3851 2.5967 0.3417 0.4340
TNM_CLIN_STAGE_GROUP1B 0.6255 1.5986 0.5416 0.7225
TNM_CLIN_STAGE_GROUP1C NA NA NA NA
TNM_CLIN_STAGE_GROUP2 1.4399 0.6945 1.1710 1.7706
TNM_CLIN_STAGE_GROUP2A 1.1588 0.8629 0.9391 1.4299
TNM_CLIN_STAGE_GROUP2B 1.6498 0.6061 1.4206 1.9160
TNM_CLIN_STAGE_GROUP2C NA NA NA NA
TNM_CLIN_STAGE_GROUP3 1.9904 0.5024 1.6072 2.4650
TNM_CLIN_STAGE_GROUP3A 1.7394 0.5749 1.4502 2.0863
TNM_CLIN_STAGE_GROUP3B 2.3575 0.4242 1.8839 2.9500
TNM_CLIN_STAGE_GROUP3C NA NA NA NA
TNM_CLIN_STAGE_GROUP4 2.7995 0.3572 2.4552 3.1921
TNM_CLIN_STAGE_GROUP4A 2.6339 0.3797 2.2823 3.0395
TNM_CLIN_STAGE_GROUP4A1 1.9575 0.5109 1.3778 2.7810
TNM_CLIN_STAGE_GROUP4A2 2.1622 0.4625 1.2475 3.7476
TNM_CLIN_STAGE_GROUP4B 4.1976 0.2382 3.5744 4.9294
TNM_CLIN_STAGE_GROUP4C NA NA NA NA
TNM_CLIN_STAGE_GROUPN_A 1.1026 0.9069 0.5487 2.2157
TNM_CLIN_STAGE_GROUP99 NA NA NA NA
Concordance= 0.712 (se = 0.005 )
Rsquare= 0.134 (max possible= 0.993 )
Likelihood ratio test= 1719 on 15 df, p=0
Wald test = 1785 on 15 df, p=0
Score (logrank) test = 2206 on 15 df, p=0
Removed 6 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 16.



Pathologic T Stage
uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
2146 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 5946 1986 NA 140.2 NA
TNM_PATH_T=p1 786 65 NA NA NA
TNM_PATH_T=p1A 89 6 NA NA NA
TNM_PATH_T=p1B 41 4 NA NA NA
TNM_PATH_T=p2 352 69 NA 90.8 NA
TNM_PATH_T=p2A 19 2 NA NA NA
TNM_PATH_T=p2B 33 8 41.1 34.4 NA
TNM_PATH_T=p3 165 59 66.0 53.9 NA
TNM_PATH_T=p4 196 92 46.2 36.7 65.4
TNM_PATH_T=pX 2225 723 158.3 147.5 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
2146 observations deleted due to missingness
TNM_PATH_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4445 925 0.837 0.00491 0.827 0.847
24 3665 386 0.761 0.00579 0.750 0.773
36 3052 205 0.716 0.00624 0.704 0.729
48 2568 124 0.685 0.00656 0.673 0.698
60 2159 91 0.660 0.00685 0.646 0.673
120 547 231 0.553 0.00895 0.536 0.571
TNM_PATH_T=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 629 15 0.979 0.00544 0.968 0.989
24 539 13 0.957 0.00790 0.942 0.973
36 422 9 0.940 0.00966 0.921 0.959
48 294 13 0.907 0.01302 0.882 0.933
60 187 8 0.877 0.01628 0.846 0.910
120 6 7 0.833 0.02367 0.788 0.881
TNM_PATH_T=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 77 1 0.988 0.0121 0.964 1.000
24 67 1 0.973 0.0186 0.938 1.000
36 54 3 0.924 0.0330 0.861 0.991
48 42 1 0.902 0.0386 0.830 0.981
60 23 0 0.902 0.0386 0.830 0.981
TNM_PATH_T=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 0 1.000 0.0000 1.000 1
24 26 2 0.935 0.0441 0.853 1
36 23 0 0.935 0.0441 0.853 1
48 15 0 0.935 0.0441 0.853 1
60 8 2 0.772 0.1135 0.579 1
TNM_PATH_T=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 286 15 0.954 0.0117 0.931 0.977
24 248 12 0.911 0.0164 0.880 0.944
36 198 14 0.856 0.0211 0.815 0.898
48 128 11 0.798 0.0259 0.749 0.851
60 82 8 0.737 0.0317 0.678 0.802
TNM_PATH_T=p2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 0 1.000 0.000 1.000 1
24 11 0 1.000 0.000 1.000 1
36 6 2 0.778 0.139 0.549 1
48 4 0 0.778 0.139 0.549 1
60 3 0 0.778 0.139 0.549 1
TNM_PATH_T=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 1 0.963 0.0363 0.894 1.000
24 12 2 0.854 0.0802 0.710 1.000
36 8 3 0.626 0.1274 0.420 0.933
48 6 2 0.470 0.1353 0.267 0.826
60 5 0 0.470 0.1353 0.267 0.826
TNM_PATH_T=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 134 14 0.909 0.0231 0.865 0.956
24 97 18 0.781 0.0343 0.717 0.852
36 76 8 0.713 0.0390 0.640 0.793
48 51 9 0.616 0.0451 0.534 0.711
60 29 6 0.524 0.0519 0.432 0.637
120 2 4 0.383 0.0790 0.256 0.574
TNM_PATH_T=p4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 140 34 0.814 0.0288 0.760 0.873
24 111 19 0.700 0.0348 0.635 0.771
36 79 17 0.585 0.0387 0.514 0.666
48 49 12 0.488 0.0412 0.414 0.576
60 27 5 0.428 0.0442 0.350 0.524
TNM_PATH_T=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1899 145 0.932 0.00547 0.921 0.943
24 1700 123 0.870 0.00743 0.855 0.885
36 1532 109 0.813 0.00871 0.796 0.830
48 1405 80 0.770 0.00949 0.752 0.789
60 1282 61 0.736 0.01002 0.717 0.756
120 407 175 0.602 0.01270 0.577 0.627
## Univariable Cox Proportional Hazard Model for: TNM_PATH_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 20 21
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
n= 9852, number of events= 3014
(2146 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Tp0 NA NA 0.00000 NA NA
TNM_PATH_Tp1 -1.31570 0.26829 0.12617 -10.428 < 2e-16 ***
TNM_PATH_Tp1A -1.57500 0.20701 0.40892 -3.852 0.000117 ***
TNM_PATH_Tp1B -1.12876 0.32344 0.50054 -2.255 0.024130 *
TNM_PATH_Tp1C NA NA 0.00000 NA NA
TNM_PATH_Tp1MI NA NA 0.00000 NA NA
TNM_PATH_Tp2 -0.46521 0.62800 0.12261 -3.794 0.000148 ***
TNM_PATH_Tp2A -0.87019 0.41887 0.70751 -1.230 0.218719
TNM_PATH_Tp2B 0.05749 1.05917 0.35436 0.162 0.871122
TNM_PATH_Tp2C NA NA 0.00000 NA NA
TNM_PATH_Tp2D NA NA 0.00000 NA NA
TNM_PATH_Tp3 0.20257 1.22455 0.13224 1.532 0.125555
TNM_PATH_Tp3A NA NA 0.00000 NA NA
TNM_PATH_Tp3B NA NA 0.00000 NA NA
TNM_PATH_Tp4 0.58832 1.80097 0.10689 5.504 3.71e-08 ***
TNM_PATH_Tp4A NA NA 0.00000 NA NA
TNM_PATH_Tp4B NA NA 0.00000 NA NA
TNM_PATH_Tp4C NA NA 0.00000 NA NA
TNM_PATH_Tp4D NA NA 0.00000 NA NA
TNM_PATH_TpA NA NA 0.00000 NA NA
TNM_PATH_TpIS NA NA 0.00000 NA NA
TNM_PATH_TpX -0.29111 0.74743 0.04363 -6.672 2.53e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0 NA NA NA NA
TNM_PATH_Tp1 0.2683 3.7274 0.20951 0.3436
TNM_PATH_Tp1A 0.2070 4.8308 0.09288 0.4614
TNM_PATH_Tp1B 0.3234 3.0918 0.12126 0.8627
TNM_PATH_Tp1C NA NA NA NA
TNM_PATH_Tp1MI NA NA NA NA
TNM_PATH_Tp2 0.6280 1.5924 0.49385 0.7986
TNM_PATH_Tp2A 0.4189 2.3874 0.10468 1.6761
TNM_PATH_Tp2B 1.0592 0.9441 0.52886 2.1213
TNM_PATH_Tp2C NA NA NA NA
TNM_PATH_Tp2D NA NA NA NA
TNM_PATH_Tp3 1.2245 0.8166 0.94496 1.5869
TNM_PATH_Tp3A NA NA NA NA
TNM_PATH_Tp3B NA NA NA NA
TNM_PATH_Tp4 1.8010 0.5553 1.46057 2.2207
TNM_PATH_Tp4A NA NA NA NA
TNM_PATH_Tp4B NA NA NA NA
TNM_PATH_Tp4C NA NA NA NA
TNM_PATH_Tp4D NA NA NA NA
TNM_PATH_TpA NA NA NA NA
TNM_PATH_TpIS NA NA NA NA
TNM_PATH_TpX 0.7474 1.3379 0.68617 0.8142
Concordance= 0.581 (se = 0.005 )
Rsquare= 0.027 (max possible= 0.995 )
Likelihood ratio test= 274.4 on 9 df, p=0
Wald test = 218.7 on 9 df, p=0
Score (logrank) test = 241.3 on 9 df, p=0
Removed 14 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_T



Pathologic N Stage
uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
2062 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 5944 1986 NA 140.2 NA
TNM_PATH_N=p0 762 106 NA NA NA
TNM_PATH_N=p1 45 24 48.7 27.5 NA
TNM_PATH_N=p1A 4 1 NA 9.2 NA
TNM_PATH_N=p1B 4 1 43.4 NA NA
TNM_PATH_N=p2 17 8 55.0 36.7 NA
TNM_PATH_N=p2B 1 0 NA NA NA
TNM_PATH_N=p3 18 12 21.7 10.3 NA
TNM_PATH_N=pX 3141 890 158.3 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
2062 observations deleted due to missingness
TNM_PATH_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4443 925 0.837 0.00492 0.827 0.847
24 3663 386 0.761 0.00579 0.750 0.773
36 3051 205 0.716 0.00624 0.704 0.729
48 2568 124 0.685 0.00657 0.673 0.698
60 2159 91 0.659 0.00685 0.646 0.673
120 547 231 0.553 0.00895 0.536 0.571
TNM_PATH_N=p0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 608 19 0.972 0.00626 0.960 0.985
24 523 21 0.937 0.00965 0.918 0.956
36 404 21 0.895 0.01294 0.870 0.920
48 299 13 0.861 0.01546 0.831 0.892
60 209 14 0.815 0.01898 0.778 0.853
120 8 18 0.691 0.03461 0.626 0.762
TNM_PATH_N=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 11 0.738 0.0682 0.616 0.885
24 24 2 0.683 0.0734 0.553 0.843
36 19 3 0.598 0.0790 0.461 0.775
48 13 1 0.565 0.0813 0.426 0.749
60 7 5 0.342 0.0923 0.202 0.580
TNM_PATH_N=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.426 1
24 3 0 0.75 0.217 0.426 1
36 2 0 0.75 0.217 0.426 1
48 2 0 0.75 0.217 0.426 1
60 1 0 0.75 0.217 0.426 1
TNM_PATH_N=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
TNM_PATH_N=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 3 0.812 0.0976 0.642 1.000
24 12 0 0.812 0.0976 0.642 1.000
36 8 1 0.731 0.1168 0.535 1.000
48 4 2 0.533 0.1477 0.310 0.918
60 1 1 0.355 0.1754 0.135 0.935
TNM_PATH_N=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
TNM_PATH_N=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 6 0.667 0.111 0.4809 0.924
24 7 4 0.432 0.119 0.2516 0.742
36 5 1 0.370 0.117 0.1993 0.688
48 2 1 0.247 0.128 0.0897 0.679
60 2 0 0.247 0.128 0.0897 0.679
TNM_PATH_N=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2638 185 0.938 0.00444 0.929 0.946
24 2296 169 0.875 0.00622 0.863 0.888
36 2010 140 0.820 0.00737 0.806 0.835
48 1710 113 0.772 0.00822 0.756 0.788
60 1452 71 0.738 0.00879 0.721 0.756
120 407 182 0.604 0.01202 0.581 0.628
## Univariable Cox Proportional Hazard Model for: TNM_PATH_N
Loglik converged before variable 13 ; beta may be infinite. X matrix deemed to be singular; variable 2 3 4 5 9 10 12 14 16 17 18 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
n= 9936, number of events= 3028
(2062 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Np0 -8.118e-01 4.440e-01 9.981e-02 -8.134 4.44e-16 ***
TNM_PATH_Np0I- NA NA 0.000e+00 NA NA
TNM_PATH_Np0I+ NA NA 0.000e+00 NA NA
TNM_PATH_Np0M- NA NA 0.000e+00 NA NA
TNM_PATH_Np0M+ NA NA 0.000e+00 NA NA
TNM_PATH_Np1 7.496e-01 2.116e+00 2.055e-01 3.648 0.000264 ***
TNM_PATH_Np1A -2.738e-01 7.605e-01 1.000e+00 -0.274 0.784308
TNM_PATH_Np1B 2.864e-01 1.332e+00 1.000e+00 0.286 0.774675
TNM_PATH_Np1C NA NA 0.000e+00 NA NA
TNM_PATH_Np1MI NA NA 0.000e+00 NA NA
TNM_PATH_Np2 5.631e-01 1.756e+00 3.543e-01 1.589 0.112023
TNM_PATH_Np2A NA NA 0.000e+00 NA NA
TNM_PATH_Np2B -1.018e+01 3.777e-05 3.239e+02 -0.031 0.974919
TNM_PATH_Np2C NA NA 0.000e+00 NA NA
TNM_PATH_Np3 1.086e+00 2.963e+00 2.897e-01 3.750 0.000177 ***
TNM_PATH_Np3A NA NA 0.000e+00 NA NA
TNM_PATH_Np3B NA NA 0.000e+00 NA NA
TNM_PATH_Np3C NA NA 0.000e+00 NA NA
TNM_PATH_Np4 NA NA 0.000e+00 NA NA
TNM_PATH_NpX -3.312e-01 7.181e-01 4.038e-02 -8.201 2.22e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0 4.440e-01 2.252e+00 3.651e-01 5.400e-01
TNM_PATH_Np0I- NA NA NA NA
TNM_PATH_Np0I+ NA NA NA NA
TNM_PATH_Np0M- NA NA NA NA
TNM_PATH_Np0M+ NA NA NA NA
TNM_PATH_Np1 2.116e+00 4.726e-01 1.415e+00 3.165e+00
TNM_PATH_Np1A 7.605e-01 1.315e+00 1.071e-01 5.402e+00
TNM_PATH_Np1B 1.332e+00 7.510e-01 1.874e-01 9.459e+00
TNM_PATH_Np1C NA NA NA NA
TNM_PATH_Np1MI NA NA NA NA
TNM_PATH_Np2 1.756e+00 5.694e-01 8.769e-01 3.517e+00
TNM_PATH_Np2A NA NA NA NA
TNM_PATH_Np2B 3.777e-05 2.648e+04 7.134e-281 2.000e+271
TNM_PATH_Np2C NA NA NA NA
TNM_PATH_Np3 2.963e+00 3.375e-01 1.680e+00 5.228e+00
TNM_PATH_Np3A NA NA NA NA
TNM_PATH_Np3B NA NA NA NA
TNM_PATH_Np3C NA NA NA NA
TNM_PATH_Np4 NA NA NA NA
TNM_PATH_NpX 7.181e-01 1.393e+00 6.634e-01 7.772e-01
Concordance= 0.574 (se = 0.005 )
Rsquare= 0.016 (max possible= 0.995 )
Likelihood ratio test= 163.1 on 8 df, p=0
Wald test = 158.3 on 8 df, p=0
Score (logrank) test = 166.6 on 8 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 13 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_N



Pathologic M Stage
uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3912 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 5714 1918 NA 140.2 NA
TNM_PATH_M=p1 32 17 37.5 25.1 NA
TNM_PATH_M=pX 2340 755 158.3 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3912 observations deleted due to missingness
TNM_PATH_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4277 890 0.837 0.00501 0.827 0.847
24 3548 365 0.762 0.00589 0.751 0.774
36 2969 202 0.717 0.00636 0.704 0.729
48 2512 120 0.686 0.00668 0.673 0.699
60 2120 89 0.660 0.00696 0.647 0.674
120 547 228 0.554 0.00903 0.537 0.572
TNM_PATH_M=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 21 8 0.739 0.0795 0.598 0.912
24 16 1 0.695 0.0859 0.546 0.886
36 10 4 0.508 0.1021 0.343 0.753
48 6 1 0.457 0.1038 0.293 0.713
60 4 2 0.305 0.1119 0.148 0.626
TNM_PATH_M=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2000 150 0.933 0.00529 0.923 0.943
24 1796 126 0.873 0.00717 0.859 0.887
36 1623 112 0.817 0.00841 0.801 0.834
48 1492 81 0.776 0.00916 0.758 0.794
60 1358 70 0.739 0.00973 0.720 0.758
120 415 186 0.603 0.01244 0.579 0.628
## Univariable Cox Proportional Hazard Model for: TNM_PATH_M
X matrix deemed to be singular; variable 1 3 4 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
n= 8086, number of events= 2690
(3912 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Mp0 NA NA 0.00000 NA NA
TNM_PATH_Mp1 0.78358 2.18929 0.24373 3.215 0.0013 **
TNM_PATH_Mp1A NA NA 0.00000 NA NA
TNM_PATH_Mp1B NA NA 0.00000 NA NA
TNM_PATH_Mp1C NA NA 0.00000 NA NA
TNM_PATH_MpX -0.28915 0.74890 0.04315 -6.702 2.06e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp0 NA NA NA NA
TNM_PATH_Mp1 2.1893 0.4568 1.3578 3.530
TNM_PATH_Mp1A NA NA NA NA
TNM_PATH_Mp1B NA NA NA NA
TNM_PATH_Mp1C NA NA NA NA
TNM_PATH_MpX 0.7489 1.3353 0.6882 0.815
Concordance= 0.547 (se = 0.005 )
Rsquare= 0.007 (max possible= 0.996 )
Likelihood ratio test= 56.44 on 2 df, p=5.542e-13
Wald test = 57.39 on 2 df, p=3.444e-13
Score (logrank) test = 58.6 on 2 df, p=1.88e-13
Removed 5 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_M



Pathologic Stage Group
uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
1361 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1 660 156 NA NA NA
TNM_PATH_STAGE_GROUP=1A 1134 157 NA NA NA
TNM_PATH_STAGE_GROUP=1B 336 68 NA NA NA
TNM_PATH_STAGE_GROUP=2 102 46 111.4 61.2 NA
TNM_PATH_STAGE_GROUP=2A 89 28 135.5 77.3 NA
TNM_PATH_STAGE_GROUP=2B 155 62 87.3 56.5 NA
TNM_PATH_STAGE_GROUP=3 70 38 50.8 44.0 NA
TNM_PATH_STAGE_GROUP=3A 86 40 63.9 31.6 NA
TNM_PATH_STAGE_GROUP=3B 54 27 55.5 30.2 NA
TNM_PATH_STAGE_GROUP=4 240 155 24.4 16.6 32.5
TNM_PATH_STAGE_GROUP=4A 145 95 25.1 16.5 48.1
TNM_PATH_STAGE_GROUP=4A1 1 0 NA NA NA
TNM_PATH_STAGE_GROUP=4B 125 82 20.6 10.2 34.8
TNM_PATH_STAGE_GROUP=N_A 29 8 NA NA NA
TNM_PATH_STAGE_GROUP=99 7411 2145 158.3 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
1361 observations deleted due to missingness
TNM_PATH_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 529 57 0.909 0.0115 0.887 0.932
24 476 23 0.868 0.0138 0.842 0.896
36 421 19 0.833 0.0155 0.803 0.863
48 372 15 0.802 0.0168 0.770 0.835
60 327 10 0.779 0.0178 0.745 0.815
120 82 29 0.670 0.0250 0.623 0.721
TNM_PATH_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 950 30 0.971 0.00518 0.961 0.981
24 840 27 0.942 0.00744 0.928 0.957
36 701 23 0.914 0.00922 0.897 0.933
48 561 19 0.887 0.01089 0.866 0.909
60 442 20 0.853 0.01283 0.828 0.879
120 107 36 0.739 0.02239 0.696 0.784
TNM_PATH_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 274 16 0.949 0.0124 0.925 0.974
24 240 13 0.902 0.0174 0.868 0.937
36 204 8 0.869 0.0203 0.830 0.910
48 160 9 0.827 0.0237 0.781 0.874
60 132 7 0.788 0.0268 0.737 0.842
120 20 15 0.601 0.0527 0.506 0.714
TNM_PATH_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 78 17 0.827 0.0382 0.755 0.905
24 67 7 0.750 0.0444 0.668 0.842
36 55 9 0.647 0.0498 0.557 0.753
48 48 2 0.623 0.0509 0.531 0.731
60 43 2 0.596 0.0521 0.502 0.707
120 14 6 0.485 0.0612 0.379 0.621
TNM_PATH_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 69 8 0.903 0.0328 0.841 0.969
24 55 7 0.808 0.0448 0.725 0.901
36 42 6 0.716 0.0533 0.619 0.828
48 33 1 0.696 0.0554 0.596 0.813
60 26 2 0.651 0.0602 0.543 0.780
120 4 3 0.536 0.0802 0.399 0.718
TNM_PATH_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 120 23 0.845 0.0297 0.789 0.905
24 96 12 0.756 0.0360 0.689 0.830
36 79 9 0.683 0.0401 0.608 0.766
48 59 6 0.624 0.0432 0.545 0.715
60 42 5 0.562 0.0470 0.477 0.662
120 5 7 0.359 0.0715 0.243 0.530
TNM_PATH_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 52 16 0.768 0.0509 0.674 0.874
24 46 4 0.708 0.0551 0.608 0.824
36 36 6 0.612 0.0600 0.505 0.741
48 29 4 0.540 0.0628 0.430 0.678
60 23 4 0.464 0.0644 0.353 0.609
120 2 4 0.284 0.0974 0.145 0.557
TNM_PATH_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 56 17 0.779 0.0477 0.691 0.878
24 44 7 0.675 0.0551 0.575 0.792
36 32 8 0.547 0.0606 0.440 0.679
48 27 1 0.528 0.0614 0.420 0.663
60 20 1 0.508 0.0623 0.399 0.646
120 4 5 0.346 0.0752 0.226 0.530
TNM_PATH_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 39 12 0.767 0.0590 0.660 0.892
24 33 4 0.688 0.0648 0.572 0.827
36 25 5 0.579 0.0705 0.456 0.735
48 20 3 0.508 0.0730 0.383 0.673
60 13 3 0.412 0.0773 0.286 0.595
120 2 0 0.412 0.0773 0.286 0.595
TNM_PATH_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 133 94 0.598 0.0322 0.538 0.665
24 106 19 0.510 0.0332 0.449 0.579
36 81 20 0.412 0.0333 0.352 0.483
48 67 8 0.371 0.0330 0.312 0.442
60 64 1 0.365 0.0330 0.306 0.436
120 17 11 0.280 0.0350 0.219 0.358
TNM_PATH_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 86 52 0.632 0.0407 0.557 0.717
24 69 15 0.520 0.0425 0.443 0.610
36 55 8 0.458 0.0427 0.381 0.550
48 44 5 0.414 0.0429 0.338 0.507
60 35 5 0.365 0.0431 0.290 0.460
120 6 10 0.228 0.0457 0.154 0.338
TNM_PATH_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_PATH_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 62 53 0.559 0.0456 0.477 0.656
24 47 9 0.473 0.0468 0.390 0.575
36 33 9 0.378 0.0470 0.297 0.483
48 21 5 0.318 0.0467 0.238 0.424
60 15 3 0.269 0.0474 0.190 0.380
120 3 3 0.188 0.0512 0.110 0.321
TNM_PATH_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 6 0.786 0.0775 0.648 0.953
24 18 1 0.744 0.0838 0.597 0.928
36 13 1 0.695 0.0917 0.536 0.900
48 8 0 0.695 0.0917 0.536 0.900
60 4 0 0.695 0.0917 0.536 0.900
TNM_PATH_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5834 760 0.892 0.00372 0.884 0.899
24 4818 446 0.820 0.00472 0.811 0.829
36 4011 270 0.772 0.00528 0.761 0.782
48 3366 187 0.734 0.00571 0.722 0.745
60 2779 133 0.702 0.00608 0.691 0.714
120 696 307 0.584 0.00835 0.568 0.601
## Univariable Cox Proportional Hazard Model for: TNM_PATH_STAGE_GROUP
Loglik converged before variable 15 ; beta may be infinite. X matrix deemed to be singular; variable 4 8 12 17 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
n= 10637, number of events= 3107
(1361 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_STAGE_GROUP1 -3.211e-01 7.254e-01 8.295e-02 -3.871 0.000109 ***
TNM_PATH_STAGE_GROUP1A -7.926e-01 4.527e-01 8.269e-02 -9.586 < 2e-16 ***
TNM_PATH_STAGE_GROUP1B -3.830e-01 6.818e-01 1.232e-01 -3.109 0.001876 **
TNM_PATH_STAGE_GROUP1C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP2 4.301e-01 1.537e+00 1.490e-01 2.886 0.003896 **
TNM_PATH_STAGE_GROUP2A 1.938e-01 1.214e+00 1.902e-01 1.019 0.308352
TNM_PATH_STAGE_GROUP2B 4.317e-01 1.540e+00 1.289e-01 3.350 0.000807 ***
TNM_PATH_STAGE_GROUP2C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP3 7.190e-01 2.052e+00 1.637e-01 4.393 1.12e-05 ***
TNM_PATH_STAGE_GROUP3A 7.082e-01 2.030e+00 1.596e-01 4.437 9.14e-06 ***
TNM_PATH_STAGE_GROUP3B 6.978e-01 2.009e+00 1.937e-01 3.602 0.000316 ***
TNM_PATH_STAGE_GROUP3C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP4 1.123e+00 3.074e+00 8.322e-02 13.494 < 2e-16 ***
TNM_PATH_STAGE_GROUP4A 1.117e+00 3.056e+00 1.049e-01 10.647 < 2e-16 ***
TNM_PATH_STAGE_GROUP4A1 -9.281e+00 9.318e-05 3.075e+02 -0.030 0.975918
TNM_PATH_STAGE_GROUP4B 1.357e+00 3.886e+00 1.127e-01 12.043 < 2e-16 ***
TNM_PATH_STAGE_GROUP4C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUPN_A 2.682e-01 1.308e+00 3.543e-01 0.757 0.449133
TNM_PATH_STAGE_GROUP99 NA NA 0.000e+00 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1 7.254e-01 1.379e+00 6.165e-01 8.534e-01
TNM_PATH_STAGE_GROUP1A 4.527e-01 2.209e+00 3.849e-01 5.323e-01
TNM_PATH_STAGE_GROUP1B 6.818e-01 1.467e+00 5.356e-01 8.680e-01
TNM_PATH_STAGE_GROUP1C NA NA NA NA
TNM_PATH_STAGE_GROUP2 1.537e+00 6.504e-01 1.148e+00 2.059e+00
TNM_PATH_STAGE_GROUP2A 1.214e+00 8.238e-01 8.360e-01 1.762e+00
TNM_PATH_STAGE_GROUP2B 1.540e+00 6.494e-01 1.196e+00 1.982e+00
TNM_PATH_STAGE_GROUP2C NA NA NA NA
TNM_PATH_STAGE_GROUP3 2.052e+00 4.872e-01 1.489e+00 2.829e+00
TNM_PATH_STAGE_GROUP3A 2.030e+00 4.925e-01 1.485e+00 2.776e+00
TNM_PATH_STAGE_GROUP3B 2.009e+00 4.977e-01 1.375e+00 2.937e+00
TNM_PATH_STAGE_GROUP3C NA NA NA NA
TNM_PATH_STAGE_GROUP4 3.074e+00 3.253e-01 2.611e+00 3.618e+00
TNM_PATH_STAGE_GROUP4A 3.056e+00 3.273e-01 2.488e+00 3.753e+00
TNM_PATH_STAGE_GROUP4A1 9.318e-05 1.073e+04 1.825e-266 4.756e+257
TNM_PATH_STAGE_GROUP4B 3.886e+00 2.574e-01 3.116e+00 4.846e+00
TNM_PATH_STAGE_GROUP4C NA NA NA NA
TNM_PATH_STAGE_GROUPN_A 1.308e+00 7.648e-01 6.529e-01 2.618e+00
TNM_PATH_STAGE_GROUP99 NA NA NA NA
Concordance= 0.598 (se = 0.004 )
Rsquare= 0.05 (max possible= 0.994 )
Likelihood ratio test= 543.8 on 14 df, p=0
Wald test = 628.6 on 14 df, p=0
Score (logrank) test = 716.2 on 14 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 15.



Margins
uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n events median 0.95LCL 0.95UCL
MARGINS=No Residual 818 128 NA NA NA
MARGINS=Residual, NOS 176 34 NA 109.7 NA
MARGINS=Microscopic Resid 68 16 NA 131.7 NA
MARGINS=Macroscopic Resid 71 15 NA 86.4 NA
MARGINS=Not evaluable 452 99 NA NA NA
MARGINS=No surg 9123 2725 150 137.7 NA
MARGINS=Unknown 1290 389 NA 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
MARGINS=No Residual
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 702 30 0.961 0.00692 0.948 0.975
24 608 25 0.925 0.00972 0.906 0.945
36 523 16 0.900 0.01133 0.878 0.923
48 444 17 0.869 0.01322 0.843 0.895
60 370 10 0.848 0.01449 0.820 0.877
120 90 27 0.753 0.02220 0.711 0.798
MARGINS=Residual, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 147 11 0.934 0.0192 0.897 0.973
24 121 5 0.901 0.0237 0.855 0.948
36 99 6 0.854 0.0291 0.799 0.913
48 86 3 0.827 0.0322 0.766 0.892
60 72 1 0.816 0.0334 0.753 0.884
120 11 8 0.616 0.0730 0.489 0.777
MARGINS=Microscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 61 2 0.969 0.0217 0.927 1.000
24 51 3 0.919 0.0350 0.853 0.990
36 42 3 0.860 0.0463 0.774 0.956
48 38 1 0.838 0.0501 0.745 0.942
60 33 1 0.816 0.0534 0.718 0.928
120 15 5 0.682 0.0713 0.556 0.837
MARGINS=Macroscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 54 6 0.907 0.0364 0.838 0.981
24 48 2 0.871 0.0428 0.791 0.959
36 35 2 0.828 0.0505 0.734 0.933
48 29 1 0.802 0.0549 0.702 0.918
60 25 1 0.775 0.0595 0.666 0.901
120 4 3 0.635 0.0900 0.481 0.839
MARGINS=Not evaluable
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 374 32 0.925 0.0128 0.900 0.950
24 316 23 0.865 0.0170 0.833 0.899
36 266 9 0.839 0.0186 0.803 0.876
48 222 14 0.793 0.0213 0.752 0.836
60 173 6 0.769 0.0228 0.726 0.815
120 37 13 0.695 0.0289 0.640 0.754
MARGINS=No surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7041 1028 0.881 0.00350 0.874 0.888
24 5800 529 0.811 0.00434 0.803 0.820
36 4710 362 0.757 0.00489 0.748 0.767
48 3796 236 0.716 0.00531 0.706 0.727
60 3068 166 0.682 0.00567 0.671 0.694
120 705 362 0.553 0.00810 0.537 0.569
MARGINS=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 963 178 0.854 0.0101 0.834 0.874
24 795 84 0.776 0.0123 0.752 0.800
36 646 42 0.733 0.0133 0.707 0.759
48 536 22 0.706 0.0140 0.680 0.734
60 421 23 0.674 0.0149 0.645 0.703
120 100 34 0.590 0.0197 0.552 0.629
## Univariable Cox Proportional Hazard Model for: MARGINS
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
MARGINSResidual, NOS 0.29617 1.34470 0.19295 1.535 0.12479
MARGINSMicroscopic Resid 0.33614 1.39953 0.26518 1.268 0.20495
MARGINSMacroscopic Resid 0.46871 1.59794 0.27293 1.717 0.08592 .
MARGINSNot evaluable 0.42175 1.52463 0.13385 3.151 0.00163 **
MARGINSNo surg 0.81012 2.24817 0.09046 8.956 < 2e-16 ***
MARGINSUnknown 0.84437 2.32650 0.10192 8.285 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS 1.345 0.7437 0.9213 1.963
MARGINSMicroscopic Resid 1.400 0.7145 0.8323 2.353
MARGINSMacroscopic Resid 1.598 0.6258 0.9359 2.728
MARGINSNot evaluable 1.525 0.6559 1.1728 1.982
MARGINSNo surg 2.248 0.4448 1.8829 2.684
MARGINSUnknown 2.327 0.4298 1.9053 2.841
Concordance= 0.539 (se = 0.004 )
Rsquare= 0.011 (max possible= 0.993 )
Likelihood ratio test= 131.3 on 6 df, p=0
Wald test = 106.2 on 6 df, p=0
Score (logrank) test = 111.1 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: MARGINS



Margins Yes/No
#uni_var(test_var = "MARGINS_YN", data_imp = data)
30 Day Readmission
uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 11615 3270 NA 155.1 NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 50 23 31 21.6 NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same 68 27 78 48.9 NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same 2 0 NA NA NA
READM_HOSP_30_DAYS_F=9 263 86 NA 124.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9049 1233 0.888 0.00302 0.882 0.894
24 7495 643 0.821 0.00376 0.814 0.829
36 6117 422 0.772 0.00423 0.764 0.781
48 4974 286 0.733 0.00460 0.725 0.743
60 4024 194 0.702 0.00492 0.693 0.712
120 919 440 0.579 0.00707 0.566 0.593
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 30 17 0.647 0.0692 0.525 0.798
24 23 2 0.603 0.0711 0.479 0.760
36 16 4 0.497 0.0759 0.368 0.670
48 12 0 0.497 0.0759 0.368 0.670
60 7 0 0.497 0.0759 0.368 0.670
120 2 0 0.497 0.0759 0.368 0.670
READM_HOSP_30_DAYS_F=Plan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 54 8 0.877 0.0408 0.801 0.961
24 44 8 0.747 0.0549 0.647 0.863
36 38 3 0.695 0.0588 0.589 0.820
48 29 3 0.636 0.0629 0.523 0.772
60 18 3 0.558 0.0696 0.437 0.712
120 4 2 0.472 0.0812 0.337 0.661
READM_HOSP_30_DAYS_F=PlanUnplan_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
READM_HOSP_30_DAYS_F=9
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 207 29 0.881 0.0208 0.841 0.922
24 175 18 0.801 0.0261 0.751 0.854
36 149 11 0.747 0.0289 0.692 0.806
48 135 5 0.721 0.0301 0.665 0.783
60 113 11 0.661 0.0326 0.601 0.729
120 37 10 0.574 0.0398 0.501 0.658
## Univariable Cox Proportional Hazard Model for: READM_HOSP_30_DAYS_F
Loglik converged before variable 3 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 8.349e-01 2.305e+00 2.093e-01 3.989 6.62e-05 ***
READM_HOSP_30_DAYS_FPlan_Readmit_Same 3.680e-01 1.445e+00 1.933e-01 1.904 0.0569 .
READM_HOSP_30_DAYS_FPlanUnplan_Same -1.100e+01 1.673e-05 3.171e+02 -0.035 0.9723
READM_HOSP_30_DAYS_F9 4.463e-02 1.046e+00 1.093e-01 0.408 0.6830
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 2.305e+00 4.339e-01 1.529e+00 3.473e+00
READM_HOSP_30_DAYS_FPlan_Readmit_Same 1.445e+00 6.921e-01 9.893e-01 2.110e+00
READM_HOSP_30_DAYS_FPlanUnplan_Same 1.673e-05 5.977e+04 2.074e-275 1.350e+265
READM_HOSP_30_DAYS_F9 1.046e+00 9.564e-01 8.440e-01 1.295e+00
Concordance= 0.505 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 16.79 on 4 df, p=0.002122
Wald test = 19.54 on 4 df, p=0.0006162
Score (logrank) test = 21.11 on 4 df, p=0.0003006
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: READM_HOSP_30_DAYS_F



Radiation Type
uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None 8786 2395 NA 158.3 NA
RX_SUMM_RADIATION_F=Beam Radiation 3058 970 155.1 137.7 NA
RX_SUMM_RADIATION_F=Radioactive Implants 26 5 NA 58.2 NA
RX_SUMM_RADIATION_F=Radioisotopes 1 1 90.8 NA NA
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes 1 0 NA NA NA
RX_SUMM_RADIATION_F=Radiation, NOS 55 17 113.5 89.4 NA
RX_SUMM_RADIATION_F=Unknown 71 18 NA 126.8 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
RX_SUMM_RADIATION_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6709 951 0.885 0.00352 0.878 0.892
24 5585 433 0.825 0.00430 0.817 0.833
36 4552 304 0.777 0.00485 0.768 0.787
48 3701 209 0.739 0.00529 0.728 0.749
60 2947 153 0.705 0.00570 0.694 0.717
120 674 309 0.584 0.00833 0.568 0.600
RX_SUMM_RADIATION_F=Beam Radiation
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2507 326 0.890 0.00576 0.879 0.901
24 2040 231 0.804 0.00749 0.789 0.819
36 1673 131 0.749 0.00837 0.733 0.766
48 1378 80 0.711 0.00897 0.693 0.729
60 1165 51 0.683 0.00943 0.665 0.702
120 277 135 0.565 0.01260 0.541 0.590
RX_SUMM_RADIATION_F=Radioactive Implants
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 1 0.958 0.0408 0.882 1.000
24 19 2 0.867 0.0716 0.737 1.000
36 15 1 0.819 0.0823 0.673 0.997
48 12 0 0.819 0.0823 0.673 0.997
60 3 1 0.682 0.1422 0.454 1.000
120 1 0 0.682 0.1422 0.454 1.000
RX_SUMM_RADIATION_F=Radioisotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Radiation, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46 4 0.922 0.0376 0.851 0.999
24 44 1 0.901 0.0420 0.823 0.987
36 36 2 0.856 0.0507 0.762 0.961
48 24 4 0.749 0.0668 0.629 0.892
60 21 1 0.717 0.0714 0.590 0.871
120 4 4 0.440 0.1295 0.247 0.783
RX_SUMM_RADIATION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 55 5 0.919 0.0348 0.853 0.990
24 49 4 0.851 0.0460 0.765 0.946
36 43 2 0.814 0.0508 0.720 0.920
48 34 1 0.794 0.0534 0.696 0.906
60 24 2 0.741 0.0617 0.629 0.872
120 6 3 0.636 0.0770 0.502 0.807
## Univariable Cox Proportional Hazard Model for: RX_SUMM_RADIATION_F
Loglik converged before variable 4 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
RX_SUMM_RADIATION_FBeam Radiation 7.828e-02 1.081e+00 3.806e-02 2.056 0.0397 *
RX_SUMM_RADIATION_FRadioactive Implants -3.253e-01 7.223e-01 4.477e-01 -0.727 0.4675
RX_SUMM_RADIATION_FRadioisotopes 8.073e-01 2.242e+00 1.000e+00 0.807 0.4196
RX_SUMM_RADIATION_FBeam + Imp or Isotopes -1.098e+01 1.703e-05 3.579e+02 -0.031 0.9755
RX_SUMM_RADIATION_FRadiation, NOS -8.301e-03 9.917e-01 2.434e-01 -0.034 0.9728
RX_SUMM_RADIATION_FUnknown -1.099e-01 8.959e-01 2.366e-01 -0.465 0.6423
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation 1.081e+00 9.247e-01 1.004e+00 1.165e+00
RX_SUMM_RADIATION_FRadioactive Implants 7.223e-01 1.384e+00 3.004e-01 1.737e+00
RX_SUMM_RADIATION_FRadioisotopes 2.242e+00 4.461e-01 3.156e-01 1.592e+01
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 1.703e-05 5.871e+04 4.205e-310 6.899e+299
RX_SUMM_RADIATION_FRadiation, NOS 9.917e-01 1.008e+00 6.155e-01 1.598e+00
RX_SUMM_RADIATION_FUnknown 8.959e-01 1.116e+00 5.635e-01 1.424e+00
Concordance= 0.507 (se = 0.004 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 6.62 on 6 df, p=0.3579
Wald test = 5.78 on 6 df, p=0.4486
Score (logrank) test = 6.29 on 6 df, p=0.3917
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_SUMM_RADIATION_F



Lymphovascular Invasion
#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
Endoscopic/Robotic
uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
5389 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg 5425 1182 NA 91.7 NA
RX_HOSP_SURG_APPR_2010_F=Robot_Assist 1 0 NA NA NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap 58 17 80.1 NA NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open 2 1 41.9 NA NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 831 134 93.9 93.9 NA
RX_HOSP_SURG_APPR_2010_F=Unknown 292 129 40.4 25.0 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
5389 observations deleted due to missingness
RX_HOSP_SURG_APPR_2010_F=No_Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4114 508 0.900 0.00424 0.891 0.908
24 3215 260 0.838 0.00540 0.828 0.849
36 2319 179 0.786 0.00632 0.774 0.799
48 1537 113 0.741 0.00725 0.727 0.756
60 933 70 0.699 0.00845 0.683 0.716
RX_HOSP_SURG_APPR_2010_F=Robot_Assist
time n.risk n.event survival std.err lower 95% CI upper 95% CI
RX_HOSP_SURG_APPR_2010_F=Endo_Lap
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40 10 0.819 0.0519 0.724 0.928
24 28 3 0.749 0.0613 0.638 0.879
36 21 0 0.749 0.0613 0.638 0.879
48 13 3 0.640 0.0783 0.504 0.814
60 8 0 0.640 0.0783 0.504 0.814
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
RX_HOSP_SURG_APPR_2010_F=Open_Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 652 62 0.919 0.00983 0.900 0.939
24 524 29 0.875 0.01235 0.851 0.900
36 383 15 0.846 0.01401 0.819 0.874
48 283 11 0.819 0.01577 0.789 0.851
60 184 7 0.795 0.01788 0.760 0.830
RX_HOSP_SURG_APPR_2010_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 185 70 0.742 0.0267 0.692 0.796
24 128 35 0.595 0.0309 0.537 0.659
36 87 17 0.514 0.0324 0.454 0.581
48 65 4 0.489 0.0332 0.428 0.558
60 41 2 0.471 0.0343 0.408 0.543
## Univariable Cox Proportional Hazard Model for: RX_HOSP_SURG_APPR_2010_F
Loglik converged before variable 1 ; beta may be infinite. X matrix deemed to be singular; variable 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
n= 6609, number of events= 1463
(5389 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RX_HOSP_SURG_APPR_2010_FRobot_Assist -1.006e+01 4.273e-05 5.933e+02 -0.017 0.9865
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA 0.000e+00 NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap 4.220e-01 1.525e+00 2.443e-01 1.728 0.0841 .
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 9.277e-01 2.529e+00 1.000e+00 0.927 0.3538
RX_HOSP_SURG_APPR_2010_FOpen_Unknown -3.697e-01 6.909e-01 9.120e-02 -4.054 5.04e-05 ***
RX_HOSP_SURG_APPR_2010_FUnknown 8.949e-01 2.447e+00 9.278e-02 9.645 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist 4.273e-05 2.340e+04 0.0000 Inf
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap 1.525e+00 6.557e-01 0.9448 2.4617
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 2.529e+00 3.954e-01 0.3559 17.9693
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 6.909e-01 1.447e+00 0.5779 0.8262
RX_HOSP_SURG_APPR_2010_FUnknown 2.447e+00 4.087e-01 2.0401 2.9350
Concordance= 0.549 (se = 0.005 )
Rsquare= 0.015 (max possible= 0.974 )
Likelihood ratio test= 102 on 5 df, p=0
Wald test = 121.5 on 5 df, p=0
Score (logrank) test = 130.3 on 5 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 2 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_HOSP_SURG_APPR_2010_F



Surgery Radiation Sequence
uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone 1774 382 NA NA NA
SURG_RAD_SEQ=Surg then Rad 741 156 NA NA NA
SURG_RAD_SEQ=Rad Alone 2325 812 130.6 108.2 NA
SURG_RAD_SEQ=No Treatment 6918 1959 158.3 144.3 NA
SURG_RAD_SEQ=Other 226 91 91.7 57.1 NA
SURG_RAD_SEQ=Rad before and after Surg 3 2 134.3 36.2 NA
SURG_RAD_SEQ=Rad then Surg 11 4 60.8 25.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
SURG_RAD_SEQ=Surg Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1406 146 0.913 0.00692 0.899 0.926
24 1196 66 0.868 0.00852 0.851 0.884
36 1005 35 0.841 0.00940 0.822 0.859
48 843 44 0.802 0.01064 0.781 0.823
60 673 26 0.775 0.01153 0.752 0.798
120 143 59 0.669 0.01721 0.636 0.703
SURG_RAD_SEQ=Surg then Rad
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 652 40 0.944 0.00859 0.927 0.961
24 561 40 0.884 0.01227 0.860 0.908
36 474 23 0.845 0.01413 0.818 0.873
48 409 9 0.828 0.01492 0.799 0.858
60 353 12 0.803 0.01615 0.772 0.835
120 100 27 0.715 0.02197 0.673 0.759
SURG_RAD_SEQ=Rad Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1868 279 0.876 0.00697 0.862 0.890
24 1498 187 0.784 0.00893 0.766 0.801
36 1220 109 0.723 0.00994 0.704 0.743
48 981 74 0.676 0.01070 0.656 0.697
60 818 41 0.646 0.01121 0.625 0.668
120 174 111 0.511 0.01528 0.482 0.542
SURG_RAD_SEQ=No Treatment
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5260 769 0.882 0.00401 0.874 0.890
24 4353 362 0.818 0.00493 0.808 0.828
36 3514 266 0.765 0.00559 0.754 0.776
48 2827 163 0.726 0.00607 0.715 0.738
60 2252 123 0.692 0.00653 0.679 0.705
120 521 246 0.567 0.00951 0.548 0.586
SURG_RAD_SEQ=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 143 53 0.742 0.0306 0.684 0.804
24 120 15 0.662 0.0336 0.600 0.731
36 102 5 0.632 0.0346 0.568 0.704
48 87 3 0.612 0.0354 0.547 0.686
60 63 6 0.567 0.0373 0.499 0.645
120 22 8 0.469 0.0452 0.388 0.567
SURG_RAD_SEQ=Rad before and after Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 0 1.000 0.000 1.0 1
24 3 0 1.000 0.000 1.0 1
36 3 0 1.000 0.000 1.0 1
48 2 1 0.667 0.272 0.3 1
60 2 0 0.667 0.272 0.3 1
120 2 0 0.667 0.272 0.3 1
SURG_RAD_SEQ=Rad then Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 0 1.000 0.0000 1.000 1
24 8 1 0.900 0.0949 0.732 1
36 3 2 0.675 0.1551 0.430 1
48 2 0 0.675 0.1551 0.430 1
60 1 0 0.675 0.1551 0.430 1
## Univariable Cox Proportional Hazard Model for: SURG_RAD_SEQ
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -0.16432 0.84847 0.09504 -1.729 0.0838 .
SURG_RAD_SEQRad Alone 0.51002 1.66533 0.06205 8.220 2.22e-16 ***
SURG_RAD_SEQNo Treatment 0.34684 1.41459 0.05594 6.200 5.63e-10 ***
SURG_RAD_SEQOther 0.81694 2.26356 0.11666 7.003 2.51e-12 ***
SURG_RAD_SEQRad before and after Surg 0.66183 1.93834 0.70903 0.933 0.3506
SURG_RAD_SEQRad then Surg 0.79106 2.20573 0.50271 1.574 0.1156
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 0.8485 1.1786 0.7043 1.022
SURG_RAD_SEQRad Alone 1.6653 0.6005 1.4746 1.881
SURG_RAD_SEQNo Treatment 1.4146 0.7069 1.2677 1.579
SURG_RAD_SEQOther 2.2636 0.4418 1.8009 2.845
SURG_RAD_SEQRad before and after Surg 1.9383 0.5159 0.4829 7.780
SURG_RAD_SEQRad then Surg 2.2057 0.4534 0.8235 5.908
Concordance= 0.549 (se = 0.005 )
Rsquare= 0.011 (max possible= 0.993 )
Likelihood ratio test= 135.9 on 6 df, p=0
Wald test = 129 on 6 df, p=0
Score (logrank) test = 132 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURG_RAD_SEQ



Surgery Yes/No
uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n events median 0.95LCL 0.95UCL
SURGERY_YN=No 9315 2800 150.1 135.7 NA
SURGERY_YN=Ukn 132 59 76.5 49.8 NA
SURGERY_YN=Yes 2551 547 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
SURGERY_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7166 1071 0.878 0.00349 0.872 0.885
24 5880 554 0.807 0.00433 0.799 0.816
36 4754 375 0.752 0.00487 0.743 0.762
48 3820 238 0.712 0.00528 0.701 0.722
60 3077 164 0.678 0.00564 0.667 0.690
120 692 357 0.550 0.00808 0.535 0.566
SURGERY_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 85 29 0.755 0.0397 0.681 0.837
24 72 10 0.664 0.0440 0.583 0.757
36 66 5 0.618 0.0456 0.535 0.714
48 63 2 0.599 0.0461 0.515 0.696
60 48 5 0.550 0.0473 0.464 0.651
120 24 7 0.452 0.0518 0.361 0.566
SURGERY_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2091 187 0.923 0.00543 0.912 0.934
24 1787 107 0.873 0.00694 0.860 0.887
36 1501 60 0.842 0.00777 0.827 0.857
48 1268 54 0.810 0.00862 0.793 0.827
60 1037 39 0.783 0.00934 0.765 0.802
120 246 88 0.683 0.01343 0.658 0.710
## Univariable Cox Proportional Hazard Model for: SURGERY_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
SURGERY_YNUkn 0.38918 1.47577 0.13162 2.957 0.00311 **
SURGERY_YNYes -0.44611 0.64011 0.04677 -9.539 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn 1.4758 0.6776 1.140 1.9101
SURGERY_YNYes 0.6401 1.5622 0.584 0.7016
Concordance= 0.539 (se = 0.004 )
Rsquare= 0.009 (max possible= 0.993 )
Likelihood ratio test= 111.7 on 2 df, p=0
Wald test = 103.4 on 2 df, p=0
Score (logrank) test = 105.4 on 2 df, p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURGERY_YN



Radiation Yes/No
uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
88 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RADIATION_YN=No 8769 2378 NA 158 NA
RADIATION_YN=Yes 3141 993 155 136 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
88 observations deleted due to missingness
RADIATION_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6709 934 0.887 0.00350 0.880 0.894
24 5585 433 0.827 0.00429 0.818 0.835
36 4552 304 0.779 0.00485 0.769 0.788
48 3701 209 0.740 0.00529 0.730 0.751
60 2947 153 0.707 0.00570 0.696 0.718
120 674 309 0.585 0.00834 0.569 0.602
RADIATION_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2578 331 0.891 0.00566 0.880 0.902
24 2105 234 0.806 0.00736 0.792 0.821
36 1726 134 0.752 0.00823 0.736 0.768
48 1416 84 0.713 0.00884 0.696 0.730
60 1191 53 0.684 0.00931 0.666 0.703
120 282 140 0.563 0.01257 0.539 0.589
## Univariable Cox Proportional Hazard Model for: RADIATION_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
n= 11910, number of events= 3371
(88 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RADIATION_YNYes 0.08112 1.08450 0.03779 2.147 0.0318 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes 1.084 0.9221 1.007 1.168
Concordance= 0.506 (se = 0.004 )
Rsquare= 0 (max possible= 0.993 )
Likelihood ratio test= 4.56 on 1 df, p=0.0328
Wald test = 4.61 on 1 df, p=0.03182
Score (logrank) test = 4.61 on 1 df, p=0.03178
## Unadjusted Kaplan Meier Overall Survival Curve for: RADIATION_YN



Chemo Yes/No
uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n events median 0.95LCL 0.95UCL
CHEMO_YN=No 7426 1542 NA NA NA
CHEMO_YN=Yes 4175 1784 82.6 73.5 93.4
CHEMO_YN=Ukn 397 80 NA 138.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
CHEMO_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5966 507 0.928 0.00309 0.922 0.934
24 5088 251 0.887 0.00390 0.879 0.894
36 4188 214 0.847 0.00458 0.838 0.856
48 3418 158 0.812 0.00516 0.802 0.822
60 2765 110 0.784 0.00565 0.773 0.795
120 643 270 0.658 0.00897 0.641 0.676
CHEMO_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3062 760 0.811 0.00620 0.799 0.823
24 2373 407 0.698 0.00745 0.683 0.713
36 1893 218 0.630 0.00802 0.615 0.646
48 1531 126 0.586 0.00838 0.569 0.602
60 1241 86 0.550 0.00870 0.534 0.568
120 277 169 0.436 0.01095 0.415 0.458
CHEMO_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 314 20 0.944 0.0122 0.920 0.968
24 278 13 0.904 0.0159 0.873 0.936
36 240 8 0.877 0.0181 0.842 0.913
48 202 10 0.839 0.0209 0.799 0.881
60 156 12 0.785 0.0248 0.738 0.835
120 42 13 0.683 0.0360 0.616 0.757
## Univariable Cox Proportional Hazard Model for: CHEMO_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n= 11998, number of events= 3406
coef exp(coef) se(coef) z Pr(>|z|)
CHEMO_YNYes 0.85266 2.34589 0.03481 24.493 <2e-16 ***
CHEMO_YNUkn -0.05485 0.94663 0.11467 -0.478 0.632
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes 2.3459 0.4263 2.1912 2.512
CHEMO_YNUkn 0.9466 1.0564 0.7561 1.185
Concordance= 0.614 (se = 0.004 )
Rsquare= 0.05 (max possible= 0.993 )
Likelihood ratio test= 610.3 on 2 df, p=0
Wald test = 620.2 on 2 df, p=0
Score (logrank) test = 658.7 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: CHEMO_YN



Treatment Yes/No
uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
397 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 4059 791 NA NA NA
Tx_YN=TRUE 7542 2535 136 131 158
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
397 observations deleted due to missingness
Tx_YN=FALSE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3179 290 0.924 0.00428 0.916 0.933
24 2713 110 0.891 0.00520 0.880 0.901
36 2210 102 0.855 0.00609 0.843 0.867
48 1768 79 0.821 0.00693 0.807 0.835
60 1400 60 0.790 0.00774 0.775 0.805
120 331 136 0.657 0.01301 0.632 0.683
Tx_YN=TRUE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5849 977 0.865 0.00404 0.857 0.872
24 4748 548 0.780 0.00502 0.770 0.789
36 3871 330 0.722 0.00555 0.712 0.733
48 3181 205 0.682 0.00593 0.670 0.693
60 2606 136 0.650 0.00623 0.638 0.663
120 589 303 0.534 0.00830 0.518 0.551
## Univariable Cox Proportional Hazard Model for: Tx_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
n= 11601, number of events= 3326
(397 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
Tx_YNTRUE 0.56008 1.75082 0.04073 13.75 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE 1.751 0.5712 1.616 1.896
Concordance= 0.561 (se = 0.004 )
Rsquare= 0.018 (max possible= 0.994 )
Likelihood ratio test= 206.8 on 1 df, p=0
Wald test = 189.1 on 1 df, p=0
Score (logrank) test = 194.1 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: Tx_YN



Tumor specific Variables
Node Size
Cox Proportional Hazard Ratio
Model #1
Full analysis
model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
data = data)
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F +
INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F +
EDUCATION_F, data = data)
n= 9451, number of events= 3012
(2547 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -0.259897 0.771131 0.101940 -2.550 0.01079 *
SURG_RAD_SEQRad Alone 0.280902 1.324324 0.067472 4.163 3.14e-05 ***
SURG_RAD_SEQNo Treatment 0.330105 1.391115 0.060635 5.444 5.21e-08 ***
SURG_RAD_SEQOther 0.846979 2.332589 0.127938 6.620 3.59e-11 ***
SURG_RAD_SEQRad before and after Surg 0.832230 2.298439 0.716325 1.162 0.24531
SURG_RAD_SEQRad then Surg 0.782536 2.187012 0.505401 1.548 0.12154
INSURANCE_FNone 0.628658 1.875093 0.106221 5.918 3.25e-09 ***
INSURANCE_FMedicaid 0.671840 1.957837 0.087491 7.679 1.60e-14 ***
INSURANCE_FMedicare 0.238701 1.269599 0.051705 4.617 3.90e-06 ***
INSURANCE_FOther Government 0.152376 1.164598 0.169204 0.901 0.36783
INSURANCE_FUnknown 0.031091 1.031580 0.120120 0.259 0.79576
AGE 0.045553 1.046606 0.001995 22.834 < 2e-16 ***
SEX_FFemale -0.240476 0.786254 0.037998 -6.329 2.47e-10 ***
RACE_FBlack 0.227439 1.255381 0.055709 4.083 4.45e-05 ***
RACE_FOther/Unk -0.194643 0.823129 0.120189 -1.619 0.10535
RACE_FAsian 0.203467 1.225644 0.110428 1.843 0.06540 .
INCOME_F$38,000 - $47,999 -0.014464 0.985640 0.062682 -0.231 0.81750
INCOME_F$48,000 - $62,999 0.040343 1.041167 0.066697 0.605 0.54527
INCOME_F$63,000 + 0.020508 1.020720 0.077401 0.265 0.79104
U_R_FUrban 0.017156 1.017304 0.057665 0.298 0.76607
U_R_FRural 0.053466 1.054921 0.142315 0.376 0.70715
FACILITY_TYPE_FComprehensive Comm Ca Program -0.004351 0.995658 0.088050 -0.049 0.96059
FACILITY_TYPE_FAcademic/Research Program -0.214646 0.806827 0.084019 -2.555 0.01063 *
FACILITY_TYPE_FIntegrated Network Ca Program 0.047891 1.049056 0.103785 0.461 0.64448
FACILITY_LOCATION_FMiddle Atlantic -0.080176 0.922954 0.085910 -0.933 0.35069
FACILITY_LOCATION_FSouth Atlantic -0.015556 0.984564 0.085714 -0.181 0.85598
FACILITY_LOCATION_FEast North Central -0.015463 0.984655 0.087684 -0.176 0.86001
FACILITY_LOCATION_FEast South Central 0.040610 1.041446 0.107439 0.378 0.70544
FACILITY_LOCATION_FWest North Central 0.174749 1.190948 0.102376 1.707 0.08783 .
FACILITY_LOCATION_FWest South Central 0.178528 1.195456 0.107546 1.660 0.09691 .
FACILITY_LOCATION_FMountain -0.080664 0.922504 0.118130 -0.683 0.49471
FACILITY_LOCATION_FPacific 0.048237 1.049419 0.093407 0.516 0.60556
EDUCATION_F13 - 20.9% -0.068279 0.934000 0.060190 -1.134 0.25663
EDUCATION_F7 - 12.9% -0.186710 0.829684 0.067072 -2.784 0.00537 **
EDUCATION_FLess than 7% -0.324380 0.722976 0.079499 -4.080 4.50e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 0.7711 1.2968 0.6315 0.9417
SURG_RAD_SEQRad Alone 1.3243 0.7551 1.1603 1.5116
SURG_RAD_SEQNo Treatment 1.3911 0.7188 1.2352 1.5667
SURG_RAD_SEQOther 2.3326 0.4287 1.8153 2.9974
SURG_RAD_SEQRad before and after Surg 2.2984 0.4351 0.5645 9.3577
SURG_RAD_SEQRad then Surg 2.1870 0.4572 0.8122 5.8891
INSURANCE_FNone 1.8751 0.5333 1.5227 2.3091
INSURANCE_FMedicaid 1.9578 0.5108 1.6493 2.3241
INSURANCE_FMedicare 1.2696 0.7877 1.1472 1.4050
INSURANCE_FOther Government 1.1646 0.8587 0.8359 1.6226
INSURANCE_FUnknown 1.0316 0.9694 0.8152 1.3054
AGE 1.0466 0.9555 1.0425 1.0507
SEX_FFemale 0.7863 1.2719 0.7298 0.8470
RACE_FBlack 1.2554 0.7966 1.1255 1.4002
RACE_FOther/Unk 0.8231 1.2149 0.6504 1.0418
RACE_FAsian 1.2256 0.8159 0.9871 1.5218
INCOME_F$38,000 - $47,999 0.9856 1.0146 0.8717 1.1145
INCOME_F$48,000 - $62,999 1.0412 0.9605 0.9136 1.1866
INCOME_F$63,000 + 1.0207 0.9797 0.8770 1.1879
U_R_FUrban 1.0173 0.9830 0.9086 1.1390
U_R_FRural 1.0549 0.9479 0.7981 1.3943
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9957 1.0044 0.8378 1.1832
FACILITY_TYPE_FAcademic/Research Program 0.8068 1.2394 0.6843 0.9513
FACILITY_TYPE_FIntegrated Network Ca Program 1.0491 0.9532 0.8560 1.2857
FACILITY_LOCATION_FMiddle Atlantic 0.9230 1.0835 0.7799 1.0922
FACILITY_LOCATION_FSouth Atlantic 0.9846 1.0157 0.8323 1.1647
FACILITY_LOCATION_FEast North Central 0.9847 1.0156 0.8292 1.1693
FACILITY_LOCATION_FEast South Central 1.0414 0.9602 0.8437 1.2855
FACILITY_LOCATION_FWest North Central 1.1909 0.8397 0.9744 1.4556
FACILITY_LOCATION_FWest South Central 1.1955 0.8365 0.9683 1.4760
FACILITY_LOCATION_FMountain 0.9225 1.0840 0.7318 1.1628
FACILITY_LOCATION_FPacific 1.0494 0.9529 0.8739 1.2603
EDUCATION_F13 - 20.9% 0.9340 1.0707 0.8301 1.0509
EDUCATION_F7 - 12.9% 0.8297 1.2053 0.7275 0.9462
EDUCATION_FLess than 7% 0.7230 1.3832 0.6187 0.8449
Concordance= 0.684 (se = 0.006 )
Rsquare= 0.138 (max possible= 0.996 )
Likelihood ratio test= 1401 on 35 df, p=0
Wald test = 1335 on 35 df, p=0
Score (logrank) test = 1410 on 35 df, p=0
Summary of Model
model_one %>%
tidy(., exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Variable = term,
Hazard_Ratio = estimate) %>%
tbl_df %>%
print(n = nrow(.))
Prediction Logistic Regression Models
Surgery
no_Ukns <- data %>%
filter(SURGERY_YN != "Ukn") %>%
droplevels() %>%
mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
summary(fit_surg)
Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.4643 -0.2233 -0.1853 -0.1334 0.9312
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.200e-01 3.158e-02 10.132 < 2e-16 ***
AGE_F(54,64] -2.114e-02 1.107e-02 -1.910 0.056185 .
AGE_F(64,74] -4.316e-02 1.166e-02 -3.703 0.000214 ***
AGE_F(74,100] -5.881e-02 1.246e-02 -4.720 2.39e-06 ***
SEX_FFemale 1.366e-02 8.542e-03 1.599 0.109868
RACE_FBlack -1.914e-02 1.267e-02 -1.511 0.130706
RACE_FOther/Unk -2.081e-02 2.350e-02 -0.886 0.375805
RACE_FAsian 3.394e-03 2.465e-02 0.138 0.890500
INCOME_F$38,000 - $47,999 4.447e-05 1.530e-02 0.003 0.997681
INCOME_F$48,000 - $62,999 2.994e-02 1.604e-02 1.866 0.062008 .
INCOME_F$63,000 + 3.851e-02 1.816e-02 2.120 0.034026 *
U_R_FUrban -2.446e-02 1.405e-02 -1.741 0.081789 .
U_R_FRural -4.318e-02 3.684e-02 -1.172 0.241171
FACILITY_TYPE_FComprehensive Comm Ca Program -5.920e-02 2.255e-02 -2.625 0.008674 **
FACILITY_TYPE_FAcademic/Research Program -1.252e-01 2.125e-02 -5.893 3.93e-09 ***
FACILITY_TYPE_FIntegrated Network Ca Program -4.392e-02 2.622e-02 -1.675 0.093934 .
FACILITY_LOCATION_FMiddle Atlantic -4.295e-03 1.905e-02 -0.226 0.821595
FACILITY_LOCATION_FSouth Atlantic -2.253e-03 1.970e-02 -0.114 0.908909
FACILITY_LOCATION_FEast North Central 1.002e-02 1.994e-02 0.503 0.615262
FACILITY_LOCATION_FEast South Central 1.797e-02 2.525e-02 0.712 0.476602
FACILITY_LOCATION_FWest North Central -2.627e-03 2.382e-02 -0.110 0.912164
FACILITY_LOCATION_FWest South Central 1.151e-02 2.488e-02 0.462 0.643756
FACILITY_LOCATION_FMountain 1.236e-01 2.582e-02 4.788 1.71e-06 ***
FACILITY_LOCATION_FPacific -3.347e-02 2.138e-02 -1.565 0.117532
EDUCATION_F13 - 20.9% -6.768e-03 1.469e-02 -0.461 0.645100
EDUCATION_F7 - 12.9% -3.110e-03 1.605e-02 -0.194 0.846339
EDUCATION_FLess than 7% -2.640e-02 1.847e-02 -1.430 0.152868
EXPN_GROUPPre-Expansion 5.009e-03 1.200e-02 0.417 0.676390
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.1637474)
Null deviance: 1553.1 on 9346 degrees of freedom
Residual deviance: 1526.0 on 9319 degrees of freedom
(2519 observations deleted due to missingness)
AIC: 9642.9
Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 1.3771198 1.2944564 1.4650620
AGE_F(54,64] 0.9790817 0.9580691 1.0005551
AGE_F(64,74] 0.9577572 0.9361261 0.9798882
AGE_F(74,100] 0.9428864 0.9201389 0.9661963
SEX_FFemale 1.0137522 0.9969208 1.0308678
RACE_FBlack 0.9810371 0.9569817 1.0056972
RACE_FOther/Unk 0.9794018 0.9353155 1.0255661
RACE_FAsian 1.0033996 0.9560733 1.0530686
INCOME_F$38,000 - $47,999 1.0000445 0.9704989 1.0304895
INCOME_F$48,000 - $62,999 1.0303914 0.9985013 1.0632999
INCOME_F$63,000 + 1.0392567 1.0029123 1.0769182
U_R_FUrban 0.9758372 0.9493272 1.0030876
U_R_FRural 0.9577344 0.8910140 1.0294509
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9425154 0.9017628 0.9851097
FACILITY_TYPE_FAcademic/Research Program 0.8823053 0.8463132 0.9198280
FACILITY_TYPE_FIntegrated Network Ca Program 0.9570258 0.9090844 1.0074955
FACILITY_LOCATION_FMiddle Atlantic 0.9957142 0.9592291 1.0335871
FACILITY_LOCATION_FSouth Atlantic 0.9977491 0.9599683 1.0370168
FACILITY_LOCATION_FEast North Central 1.0100726 0.9713570 1.0503312
FACILITY_LOCATION_FEast South Central 1.0181368 0.9689735 1.0697946
FACILITY_LOCATION_FWest North Central 0.9973763 0.9518902 1.0450359
FACILITY_LOCATION_FWest South Central 1.0115742 0.9634232 1.0621318
FACILITY_LOCATION_FMountain 1.1315914 1.0757550 1.1903260
FACILITY_LOCATION_FPacific 0.9670822 0.9273899 1.0084733
EDUCATION_F13 - 20.9% 0.9932544 0.9650552 1.0222777
EDUCATION_F7 - 12.9% 0.9968948 0.9660269 1.0287490
EDUCATION_FLess than 7% 0.9739449 0.9393232 1.0098426
EXPN_GROUPPre-Expansion 1.0050212 0.9816604 1.0289380
LS0tCnRpdGxlOiAiQ3V0YW5lb3VzIFQtQ2VsbCBMeW1waG9tYSBBbmFseXNpcyAtIEEgUmV2aWV3IG9mIHRoZSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzE2LzIwMTkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJ0aWR5ciIpCmxpYnJhcnkoImtuaXRyIikKbGlicmFyeSgidGFibGVvbmUiKQpsaWJyYXJ5KCJmb3JjYXRzIikKbGlicmFyeSgic3Vydml2YWwiKQpsaWJyYXJ5KCJucHN1cnYiKQpsaWJyYXJ5KCJicm9vbSIpCmxpYnJhcnkoInRpYmJsZSIpCmxpYnJhcnkoInJlYWRyIikKbGlicmFyeSgic3Vydm1pbmVyIikKbGlicmFyeSgic3RyaW5nciIpCgoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1UUlVFKQonJSFpbiUnIDwtIGZ1bmN0aW9uKHgseSkhKCclaW4lJyh4LHkpKQpgYGAKCmBgYHtyfQpwX3RhYmxlIDwtIGZ1bmN0aW9uKHRhYl9kYXRhLCAuLi4pIHsKICB0YWJfZGF0YV8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZSh0YWJfZGF0YSkpCiAgCiAgdGFibGVfcCA8LSBkby5jYWxsKENyZWF0ZVRhYmxlT25lLCAKICAgICAgICAgICAgICAgICAgICAgbGlzdChkYXRhID0gYXMubmFtZSh0YWJfZGF0YV8yKSwgaW5jbHVkZU5BID0gVFJVRSwgLi4uKSkKICB0YWJsZV9wX291dCA8LSBwcmludCh0YWJsZV9wLAogICAgICAgICAgICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHByaW50VG9nZ2xlID0gRkFMU0UpCiAga2FibGUodGFibGVfcF9vdXQsCiAgICAgICAgYWxpZ24gPSAiYyIpCn0KYGBgCgpgYGB7cn0KdW5pX3ZhciA8LSBmdW5jdGlvbih0ZXN0X3ZhciwgZGF0YV9pbXApIHsKCiAgICAgICAgICAgICAgICAKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIAogICAgICAgIGYgPC0gYXMuZm9ybXVsYShwYXN0ZSgiU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5uYW1lKHRlc3RfdmFyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiB+ICIgKSkKICAgICAgICAKICAgICAgICBkYXRhX2ltcF8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZShkYXRhX2ltcCkpCgogICAgICAgIGttX2ZpdCA8LSBkby5jYWxsKCJzdXJ2Zml0IiwgbGlzdChmb3JtdWxhID0gZiwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKICAgICAgICBwcmludChrbV9maXQpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIHByaW50KHN1bW1hcnkoa21fZml0LCB0aW1lcyA9IGMoMTIsIDI0LCAzNiwgNDgsIDYwLCAxMjApKSkKICAgICAgICBjYXQoIlxuIikKCgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbml2YXJpYWJsZSBDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBNb2RlbCBmb3I6ICIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgbl9sZXZlbHMgPC0gbmxldmVscyhkYXRhX2ltcFtbdGVzdF92YXJdXSkKCiAgICAgICAgaWYobl9sZXZlbHMgPT0gMSl7CiAgICAgICAgICAgICAgICBwcmludCgiT25seSBvbmUgbGV2ZWwsIG5vIENveCBtb2RlbCBwZXJmb3JtZWQiKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIH0gZWxzZSB7CgoKICAgICAgICAgICAgICAgIGNveF9maXQgPC0gZG8uY2FsbCgiY294cGgiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgICAgICAgICAgcHJpbnQoc3VtbWFyeShjb3hfZml0KSkKICAgICAgICAgICAgICAgIGNhdCgiXG4iKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkby5jYWxsKCJnZ2ZvcmVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KG1vZGVsID0gY294X2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKCiAgICAgICAgfQoKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMgVW5hZGp1c3RlZCBLYXBsYW4gTWVpZXIgT3ZlcmFsbCBTdXJ2aXZhbCBDdXJ2ZSBmb3I6ICIsIHRlc3RfdmFyKQoKCiAgICAgICAgcCA8LSBkby5jYWxsKCJnZ3N1cnZwbG90IiwKICAgICAgICAgICAgICAgICAgICAgbGlzdChmaXQgPSBrbV9maXQsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiamNvIiwgY2Vuc29yID0gRkFMU0UsIGxlZ2VuZCA9ICJyaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXR5cGUgPSAic3RyYXRhIiwgeGxhYiA9ICJUaW1lIChNb250aHMpIikpCgogICAgICAgIHByaW50KHApCgp9CgpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCk5ITGV4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfTkhMRXh0ci4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKYnJlYXN0IDwtICByZWFkX2Z3ZignTkNEQlBVRl9CcmVhc3QuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKdnVsdmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1Z1bHZhLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZhZ2luYSA8LSAgcmVhZF9md2YoJ05DREJQVUZfVmFnaW5hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnBlbmlzIDwtICByZWFkX2Z3ZignTkNEQlBVRl9QZW5pcy4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpvdGxldWsgPC0gcmVhZF9md2YoJ05DREJQVUZfT3RMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKb3RoZXJhY3V0ZWxldWsgIDwtIHJlYWRfZndmKCdOQ0RCUFVGX090QWNMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKQUxMICA8LSByZWFkX2Z3ZignTkNEQlBVRl9BTHltTGV1ay4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKI0NvbWJpbmUgZGF0YSBmb3IgYWxsIHN1YnNpdGVzCmRhdCA8LSBiaW5kX3Jvd3MobGlwLCBtZWxhbm9tYSwgc2tpbiwgaG9kZ2V4dHIsIGhvZGduZGFsLCBOSExuZGFsLCBicmVhc3QsIAogICAgICAgICAgICAgICAgIHZ1bHZhLCB2YWdpbmEsIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpybShsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgdnVsdmEsIHZhZ2luYSwgCiAgIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpwcmltX3NpdGVfdGV4dCA8LSBkYXRhX2ZyYW1lKFBSSU1BUllfU0lURSA9IGMoCiNOSEwgc2l0ZXMKIkMwMDAiLCAKIkMwMDEiLCAKIkMwMDIiLCAKIkMwMDMiLCAKIkMwMDQiLCAKIkMwMDUiLCAKIkMwMDYiLCAKIkMwMDgiLAoiQzAwOSIsIAoiQzAxOSIsIAoiQzAyMCIsIAoiQzAyMSIsCiJDMDIyIiwgCiJDMDIzIiwgCiJDMDI0IiwgCiJDMDI4IiwgCiJDMDI5IiwKIkMwMzAiLAoiQzAzMSIsCiJDMDM5IiwgCiJDMDQwIiwgCiJDMDQxIiwgCiJDMDQ4IiwKIkMwNDkiLCAKIkMwNTAiLCAKIkMwNTEiLCAKIkMwNTIiLCAKIkMwNTgiLCAKIkMwNTkiLAoiQzA2MCIsIAoiQzA2MSIsIAoiQzA2MiIsIAoiQzA2OCIsIAoiQzA2OSIsIAoiQzA3OSIsICAKIkMwOTgiLAoiQzA5OSIsCiJDMTExIiwKIkMxNDIiLAoiQzMwMCIsCiJDMzc5IiwKIkM0MjAiLAoiQzQyMiIsCiJDNDI0IiwKCiNza2luL21lbGFub21hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVhc3QgLSBuaXBwbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZhZ2luYS92dWx2YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BlbmlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIsCgoiQzc3MCIsCiJDNzcxIiwKIkM3NzIiLAoiQzc3MyIsCiJDNzc0IiwKIkM3NzUiLAoiQzc3OCIsCiJDNzc5IiksCgpTSVRFX1RFWFQgPSBjKAoiQzAwLjAgRXh0ZXJuYWwgTGlwOiBVcHBlciBOT1MiLAoiQzAwLjEgRXh0ZXJuYWwgTGlwOiBMb3dlciBOT1MiLAoiQzAwLjIgRXh0ZXJuYWwgTGlwOiBOT1MiLAoiQzAwLjMgTGlwOiBVcHBlciBNdWNvc2EiLAoiQzAwLjQgTGlwOiBMb3dlciBNdWNvc2EiLAoiQzAwLjUgTGlwOiBNdWNvc2EgTk9TIiwKIkMwMC42IExpcDogQ29tbWlzc3VyZSIsCiJDMDAuOCBMaXA6IE92ZXJsYXBwaW5nIiwKIkMwMC45IExpcCBOT1MiLAoiQzAxLjkgVG9uZ3VlOiBCYXNlIE5PUyIsCiJDMDIuMCBUb25ndWU6IERvcnNhbCBOT1MiLAoiQzAyLjEgVG9uZ3VlOiBCb3JkZXIsIFRpcCIsCiJDMDIuMiBUb25ndWU6IFZlbnRyYWwgTk9TIiwKIkMwMi4zIFRvbmd1ZTogQW50ZXJpb3IgTk9TIiwKIkMwMi40IExpbmd1YWwgVG9uc2lsIiwKIkMwMi44IFRvbmd1ZTogT3ZlcmxhcHBpbmciLAoiQzAyLjkgVG9uZ3VlOiBOT1MiLAoiQzAzLjAgR3VtOiBVcHBlciIsCiJDMDMuMSBHdW06IExvd2VyIiwKIkMwMy45IEd1bSBOT1MiLAoiQzA0LjAgTW91dGg6IEFudGVyaW9yIEZsb29yIiwKIkMwNC4xIE1vdXRoOiBMYXRlcmFsIEZsb29yIiwKIkMwNC44IE1vdXRoOiBPdmVybGFwcGluZyBGbG9vciIsCiJDMDQuOSBGbG9vciBvZiBNb3V0aCBOT1MiLAoiQzA1LjAgSGFyZCBQYWxhdGUiLAoiQzA1LjEgU29mdCBQYWxhdGUgTk9TIiwKIkMwNS4yIFV2dWxhIiwKIkMwNS44IFBhbGF0ZTogT3ZlcmxhcHBpbmciLAoiQzA1LjkgUGFsYXRlIE5PUyIsCiJDMDYuMCBDaGVlayBNdWNvc2EiLAoiQzA2LjEgTW91dGg6IFZlc3RpYnVsZSIsCiJDMDYuMiBSZXRyb21vbGFyIEFyZWEiLAoiQzA2LjggTW91dGg6IE90aGVyIE92ZXJsYXBwaW5nIiwKIkMwNi45IE1vdXRoIE5PUyIsCiJDMDcuOSBQYXJvdGlkIEdsYW5kIiwKICAiQzA5LjggVG9uc2lsOiBPdmVybGFwcGluZyIsCiAgIkMwOS45IFRvbnNpbCBOT1MiLAogICJDMTEuMSBOYXNvcGhhcnlueDogUG9zdGVyIFdhbGwiLCAKICAiQzE0LjIgV2FsZGV5ZXIgUmluZyIsCiAgIkMzMC4wIE5hc2FsIENhdml0eSIsCiAgIkMzNy45IFRoeW11cyIsCiJDNDIuMCBCbG9vZCIsCiAgIkM0Mi4yIFNwbGVlbiIsCiJDNDIuNCBIZW1hdG9wb2lldGljIE5PUyIsCgogI3NraW4KIkM0NC4wIFNraW4gb2YgbGlwLCBOT1MiLAoiQzQ0LjEgRXllbGlkIiwKIkM0NC4yIEV4dGVybmFsIGVhciIsCiJDNDQuMyBTa2luIG9mIGVhciBhbmQgdW5zcGVjaWZpZWQgcGFydHMgb2YgZmFjZSIsCiJDNDQuNCBTa2luIG9mIHNjYWxwIGFuZCBuZWNrIiwKIkM0NC41IFNraW4gb2YgdHJ1bmsiLAoiQzQ0LjYgU2tpbiBvZiB1cHBlciBsaW1iIGFuZCBzaG91bGRlciIsCiJDNDQuNyBTa2luIG9mIGxvd2VyIGxpbWIgYW5kIGhpcCIsCiJDNDQuOCBPdmVybGFwcGluZyBsZXNpb24gb2Ygc2tpbiIsCiJDNDQuOSBTa2luLCBOT1MiLCAKCiNicmVhc3QKIkM1MC4wIE5pcHBsZSIsCgojdnVsdmEvdmFnaW5hCiJDNTEuMCBMYWJpdW0gbWFqdXMiLAoiQzUxLjEgTGFiaXVtIG1pbnVzIiwKIkM1MS4yIENsaXRvcmlzIiwKIkM1MS44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiB2dWx2YSIsCiJDNTEuOSBWdWx2YSwgTk9TIiwKIkM1Mi45IFZhZ2luYSwgTk9TIiwKCiNwZW5pcwoiQzYwLjAgUHJlcHVjZSIsCiJDNjAuMSBHbGFucyBwZW5pcyIsCiJDNjAuMiBCb2R5IG9mIHBlbmlzIiwKIkM2MC44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiBwZW5pcyIsCiJDNjAuOSBQZW5pcyIsCiJDNjMuMiBTY3JvdHVtLCBOT1MiLAoKICAiQzc3LjAgTHltcGggTm9kZXM6IEhlYWRGYWNlTmVjayIsCiAgIkM3Ny4xIEludHJhdGhvcmFjaWMgTHltcGggTm9kZXMiLAogICJDNzcuMiBJbnRyYS1hYmRvbWluYWwgTHltcGhOb2RlcyIsCiAgIkM3Ny4zIEx5bXBoIE5vZGVzIG9mIGF4aWxsYSBvciBhcm0gIiwKICAiQzc3LjQgTHltcGggTm9kZXM6IExlZyIsCiAgIkM3Ny41IFBlbHZpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny44IEx5bXBoIE5vZGVzOiBtdWx0aXBsZSByZWdpb24iLAogICJDNzcuOSBMeW1waCBOb2RlIE5PUyIpKQoKCmRhdCA8LSBtZXJnZShkYXQsIHByaW1fc2l0ZV90ZXh0LCBieSA9ICJQUklNQVJZX1NJVEUiLCBhbGwueCA9IFRSVUUpIAoKcm0ocHJpbV9zaXRlX3RleHQpCgojIGNvbnZlcnQgbnVtZXJpYyB2YXJpYWJsZXMgZnJvbSBjaGFyYWN0ZXIgY2xhc3MgdG8gbnVtZXJpYyBjbGFzcwpudW1fdmFycyA8LSBjKCJBR0UiLCAiQ1JPV0ZMWSIsICJUVU1PUl9TSVpFIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwKICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsIAogICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwKICAgICAgICAgICAgICAiUkFEX05VTV9UUkVBVF9WT0wiKQoKZGF0W251bV92YXJzXSA8LSBsYXBwbHkoZGF0W251bV92YXJzXSwgYXMubnVtZXJpYykKCgojIGNvbnZlcnQgZmFjdG9yIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBmYWN0b3IgY2xhc3MKdmFycyA8LSBuYW1lcyhkYXQpCmZhY3RfdmFycyA8LSB2YXJzWyEodmFycyAlaW4lIG51bV92YXJzKV0gIyBiYXNpY2FsbHkgYWxsIG9mIHRoZSBub24tbnVtZXJpY3MKCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuY2hhcmFjdGVyKQpkYXRbZmFjdF92YXJzXSA8LSBsYXBwbHkoZGF0W2ZhY3RfdmFyc10sIGFzLmZhY3RvcikKCmRhdCA8LSBkYXQgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX1RZUEVfRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfVFlQRV9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbXVuaXR5IENhbmNlciBQcm9ncmFtIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tcHJlaGVuc2l2ZSBDb21tIENhIFByb2dyYW0iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY2FkZW1pYy9SZXNlYXJjaCBQcm9ncmFtIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZWdyYXRlZCBOZXR3b3JrIENhIFByb2dyYW0iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfTE9DQVRJT05fRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfTE9DQVRJT05fQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBFbmdsYW5kIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIEF0bGFudGljIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGggQXRsYW50aWMiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IE5vcnRoIENlbnRyYWwiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IFNvdXRoIENlbnRyYWwiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IE5vcnRoIENlbnRyYWwiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IFNvdXRoIENlbnRyYWwiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMiID0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQgb2YgVVMiID0gIjAiKSkgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX0dFT0dSQVBIWSA9IGZjdF9jb2xsYXBzZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3J0aGVhc3QiID0gYygiMSIsICIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGgiID0gYygiMyIsICI3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkd2VzdCIgPSBjKCI0IiwgIjUiLCAiNiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFX0YgPSBjdXQoQUdFLCBjKDAsIDU0LCA2NCwgNzQsIDEwMCkpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFXzQwID0gY3V0KEFHRSwgYygwLCA0MCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShTRVhfRiA9IGZjdF9yZWNvZGUoU0VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmVtYWxlIiA9ICIyIikpICU+JQogICAgICAgIG11dGF0ZShSQUNFX0YgPSBmY3RfY29sbGFwc2UoUkFDRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGUiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxhY2siID0gYygiMDIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNpYW4iID0gYygiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLCAiMTQiLCAiMTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNiIsICIxNyIsICIyMCIsICIyMSIsICIyMiIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsICIzMCIsICIzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMyIiwgIjk2IiwgIjk3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyL1VuayIgPSBjKCIwMyIsICI5OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1BBTklDID0gZmN0X2NvbGxhcHNlKFNQQU5JU0hfSElTUEFOSUNfT1JJR0lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiA9IGMoIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSBjKCI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU5TVVJBTkNFX0YgPSBmY3RfcmVjb2RlKElOU1VSQU5DRV9TVEFUVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWNhaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FyZSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIEdvdmVybm1lbnQiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWxldmVsKElOU1VSQU5DRV9GLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIikpICU+JQogICAgICAgIG11dGF0ZShJTkNPTUVfRiA9IGZjdF9yZWNvZGUoTUVEX0lOQ19RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gJDM4LDAwMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQzOCwwMDAgLSAkNDcsOTk5IiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDQ4LDAwMCAtICQ2Miw5OTkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNjMsMDAwICsiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKEVEVUNBVElPTl9GID0gZmN0X3JlY29kZShOT19IU0RfUVVBUl8xMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMSUgb3IgbW9yZSIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTMgLSAyMC45JSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyAtIDEyLjklIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gNyUiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFVfUl9GID0gZmN0X2NvbGxhcHNlKFVSX0NEXzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0cm8iID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVyYmFuIiA9IGMoIjQiLCAiNSIsICI2IiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1cmFsIiA9IGMoIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKENMQVNTX09GX0NBU0VfRiA9IGZjdF9jb2xsYXBzZShDTEFTU19PRl9DQVNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsX1BhcnRfUHJpbSA9IGMoIjEwIiwgIjExIiwgIjEyIiwgIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNCIsICIyMCIsICIyMSIsICIyMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJfRmFjaWxpdHkgPSBjKCIwMCIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEdSQURFX0YgPSBmY3RfcmVjb2RlKEdSQURFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIEk6IFdlbGwgRGlmZiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSUk6IE1vZCBEaWZmIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSUk6IFBvb3IgRGlmZiIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSVY6IFVuZGlmZi9BbmFwbGFzdGljIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQS9Vbmtvd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1RPTE9HWV9GID0gZmN0X2luZnJlcShISVNUT0xPR1kpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmYWN0b3IoSElTVE9MT0dZX0YpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0ZfTElNID0gZmN0X2x1bXAoSElTVE9MT0dZX0YsIHByb3AgPSAwLjA1KSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVjb2RlKFROTV9DTElOX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9UID0gZmN0X3JlbGV2ZWwoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9OID0gZmN0X3JlY29kZShUTk1fQ0xJTl9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fTSA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9UID0gZmN0X3JlbGV2ZWwoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9OID0gZmN0X3JlY29kZShUTk1fUEFUSF9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfTSA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fQ0xJTl9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fUEFUSF9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlMgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJlc2lkdWFsIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc2lkdWFsLCBOT1MiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgUmVzaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFjcm9zY29waWMgUmVzaWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGV2YWx1YWJsZSIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlNfWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnL1Vuay9OQSIgPSBjKCI3IiwgIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFJFQURNX0hPU1BfMzBfREFZU19GID0gZmN0X3JlY29kZShSRUFETV9IT1NQXzMwX0RBWVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZ19vcl9Ob19SZWFkbWl0IiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnBsYW5fUmVhZG1pdF9TYW1lIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuX1JlYWRtaXRfU2FtZSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhblVucGxhbl9TYW1lIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI0IikpICU+JQogICAgICAgIG11dGF0ZShSWF9TVU1NX1JBRElBVElPTl9GID0gZmN0X3JlY29kZShSWF9TVU1NX1JBRElBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmVhbSBSYWRpYXRpb24iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9hY3RpdmUgSW1wbGFudHMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9pc290b3BlcyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtICsgSW1wIG9yIElzb3RvcGVzIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZGlhdGlvbiwgTk9TIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl8zMF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfMzBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfMzAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfMzAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl85MF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfOTBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfOTAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfOTAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YgPSBmY3RfcmVjb2RlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVnX0x5bXBoVmFzY19JbnYiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zX0x1bXBoVmFzY19JbnYiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiA9IGZjdF9yZWNvZGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZyIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X0Fzc2lzdCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X3RvX09wZW4iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbmRvX0xhcCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwX3RvX09wZW4iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuX1Vua25vd24iID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShBbGwgPSAiQWxsIikgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9IGZhY3RvcihBbGwpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcgZHVlIHRvIHB0IGZhY3RvcnMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHB0IHJlZnVzZWQiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19URiA9IGNhc2Vfd2hlbihTVVJHRVJZX1lOID09ICJZZXMiIH4gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJHRVJZX1lOID09ICJObyIgfiBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gTkEpKSAgJT4lCiAgICAgICAgbXV0YXRlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBwZXJmb3JtZWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJhZCBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkLCBwdCBkaWVkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgdW5rIGlmIGRvbmUiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1JBRElBVElPTiA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdSQURfU0VRX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIG9yIFN1cmcgb3IgUmFkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgU3VyZyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIGJlZm9yZSBSYWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCBwbHVzIG90aGVyIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUSA9IGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gZmN0X3JlbGV2ZWwoU1VSR19SQURfU0VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIpKSAlPiUKICAgICAgICBtdXRhdGUoQ0hFTU9fWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9DSEVNTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiLCAiMDIiLCAiMDMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiwgRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoQ0hFTU9fWU4gPT0gIlVrbiIsIE5BLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpKSkKCmZhY3RfdmFyc18yIDwtIGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkFHRV9GIiwgIlNFWF9GIiwgIlJBQ0VfRiIsCiAgICAgICAgICAgICAgICAgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwKICAgICAgICAgICAgICAgICAiQ0RDQ19UT1RBTF9CRVNUIiwgIkNMQVNTX09GX0NBU0VfRiIsICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZIiwKICAgICAgICAgICAgICAgICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwKICAgICAgICAgICAgICAgICAiTUFSR0lOUyIsICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAibWV0c19hdF9keCIpCgoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGVfYXQoZmFjdF92YXJzXzIsIGZ1bnMoZmFjdG9yKC4pKSkKCmBgYAoKCiMgRXh0cmFjdCBEYXRhIG9mIEludGVyZXN0CgpgYGB7cn0KCgojIE5vbi1Ib2Rna2luIEx5bXBob21hIFNpdGVzCnNpdGVfY29kZSA8LSBjKCJDMDAxIiwiQzA5OCIsICJDMDk5IiwgIkMxMTEiLCAiQzE0MiIsICJDMzc5IiwgIkM0MjIiLCJDNzcwIiwKIkM3NzEiLCJDNzcyIiwiQzc3MyIsIkM3NzQiLCAiQzc3NSIsICJDNzc4IiwiQzc3OSIsIAojYWRkaXRpb25hbCBzaXRlcwoiQzMwMCIsICJDMDE5IiwgIkMwMjEiLCAKIkMwMjkiLCAiQzAzMCIsICJDMDM5IiwgIkMwNDkiLCAiQzA1MCIsICJDMDUxIiwgIkMwNTIiLCAgIkMwNTgiLCAiQzA1OSIsICJDMDYwIiwKIkMwNjEiLCAiQzA2OSIsICJDMDAwIiwgIkMwMDEiLCAiQzAwMiIsICJDMDAzIiwgIkMwMDQiLCAiQzAwNSIsICJDMDA2IiwgIkMwMDgiLAoiQzAwOSIsICJDMDE5IiwgIkMwMjAiLCAiQzAyMSIsICJDMDIyIiwgIkMwMjMiLCAiQzAyNCIsICJDMDI4IiwgIkMwMjkiLCAiQzAzMCIsCiJDMDMxIiwgIkMwMzkiLCAiQzA0MCIsICJDMDQxIiwgIkMwNDkiLCAiQzA1MCIsICJDMDUxIiwgIkMwNTIiLCAiQzA1OCIsICJDMDU5IiwKIkMwNjAiLCAiQzA2MSIsICJDMDYyIiwgIkMwNjgiLCAiQzA2OSIsICJDMDc5IiwKICNsaXAgIAogICJDMDAwIiwgIkMwMDEiLCAiQzAwMiIsICJDMDAzIiwgIkMwMDQiLCAiQzAwNSIsIkMwMDYiLCAiQzAwOCIsIkMwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojc2tpbi9tZWxhbm9tYQogICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjYnJlYXN0IC0gbmlwcGxlCiAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3ZhZ2luYS92dWx2YQogICJDNTEwIiwgIkM1MTEiLCAiQzUxMiIsICJDNTE4IiwgIkM1MTkiLCAiQzUyOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojcGVuaXMKICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIpCgojbXljb3NpcyBmdW5nb2lkZXMsIFNlemFyeSBzeW5kcm9tZSwgc3ViY3V0YW5lb3VzIHBhbm5pY3VsaXRpcy1saWtlIFQtY2VsbCBseW1waG9tYSwKI2N1dGFuZW91cyBULWNlbGwgbHltcGhvbWEsIE5PUywgcHJpbWFyeSBjdXRhbmVvdXMgQ0QzMCtULWNlbGwgbHltcGhvbWEsIAojTksvVC1jZWxsIGx5bXBob21hLCBwcmltYXJ5IGN1dGFuZW91cyBnYW1tYS1kZWx0YSBULWNlbGwgbHltcGhvbWEsIAojYW5kIGJsYXN0aWMgTksgY2VsbCBseW1waG9tYSwgcmVzcGVjdGl2ZWx5Cmhpc3RvX2NvZGUgPC0gYygiOTcwMCIsICI5NzAxIiwgIjk3MDgiLCAiOTcwOSIsICI5NzE4IiwgIjk3MTkiLCAiOTcyNiIsICI5NzI3IikKCmJlaGF2aW9yX2NvZGUgPC0gYygiMyIpCgpkYXRhIDwtIGRhdCAlPiUKICAgICAgICBmaWx0ZXIoQkVIQVZJT1IgJWluJSBiZWhhdmlvcl9jb2RlKSAlPiUKICAgICAgICBmaWx0ZXIoUFJJTUFSWV9TSVRFICVpbiUgc2l0ZV9jb2RlKSAlPiUKICAgICAgICBmaWx0ZXIoSElTVE9MT0dZICVpbiUgaGlzdG9fY29kZSkgJT4lCiAgICAgICAgI2ZpbHRlcihBR0UgPj0gMTgpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShQVUZfVklUQUxfU1RBVFVTKSA9PSBGQUxTRSkgJT4lCiAgICAgICAgZmlsdGVyKGlzLm5hKERYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUykgPT0gRkFMU0UpICAlPiUKICAgICAgICBmaWx0ZXIoU0VRVUVOQ0VfTlVNQkVSID09ICIwMCIpIAoKI2ZpbGVfcGF0aCA8LSBjKCIvVXNlcnMvYmVhc3RhdGxpZmUvR29vZ2xlIERyaXZlL1Blbm4vUmVzZWFyY2gvQmFyYmllcmkvTkNEQiIpCiNzYXZlKGRhdGEsCiMgICAgICBmaWxlID0gcGFzdGUwKGZpbGVfcGF0aCwgIi9DVENMX2RhdGEuUmRhIikpCmBgYAoKYGBge3IgbG9hZERhdGF9CiNsb2FkKCJNRl9kYXRhLlJkYSIpCmBgYAoKCkRhdGEgaW5jbHVkaW5nIHNraW4gdHVtb3JzIHdhcyBvYnRhaW5lZCBmcm9tIHRoZSBOQ0JEIG9uIE9jdG9iZXIgNywgMjAxOS4gQ2FzZXMgdGhhdCB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgYW5hbHlzaXMgd2VyZSB0aG9zZSB3aXRoOgoKMS4gU2l0ZSBjb2RlczogYHIgc2l0ZV9jb2RlYAoyLiBIaXN0b2xvZ3kgY29kZXM6IGByIGhpc3RvX2NvZGVgCjMuIEJlaGF2aW9yIGNvZGVzOiBgciBiZWhhdmlvcl9jb2RlYAoKClBhdGllbnRzIHdlcmUgZXhjbHVkZWQgaWYgdGhleSBkaWRuJ3QgaGF2ZSB2YWx1ZXMgZm9yIGVpdGhlciBmb2xsb3cgdXAgb3Igdml0YWwgc3RhdHVzLgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGhhZCBzdXJnZXJ5IHRvIGEgZGlzdGFudCBzaXRlIHVzaW5nIGBSWF9TVU1NX1NVUkdfT1RIX1JFR0RJU2AuIFRoaXMgd2FzIGRvbmUgdG8gYXZvaWQgY29uZm91bmRpbmcgb2YgZGlmZmVyZW50IHN1cmdpY2FsIHByb2NlZHVyZXMuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gc3VyZ2VyeSBhdCB0aGUgcHJpbWFyeSBzaXRlLiBUaGVzZSBkaXN0YW50IHNpdGUgc3VyZ2VyaWVzIHdlcmUgYmVpbmcgY291bnRlZCBpbiB0aGUgc3VyZ2VyeS9yYWRpYXRpb24gc2VxdWVuY2UgYW5kIHRodXMgdG8gc2ltcGxpZnkgYW5hbHlzaXMgdGhleSB3ZXJlIHJlbW92ZWQuIAoKYGBge3J9CgpkYXRhICU+JQogICAgICAgIENyZWF0ZVRhYmxlT25lKGRhdGEgPSAuLAogICAgICAgICAgICAgICAgICAgICB2YXJzID0gYygiUlhfU1VNTV9TVVJHX09USF9SRUdESVMiKSwKICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZU5BID0gVFJVRSkgJT4lCiAgICAgICAgcHJpbnQoLiwKICAgICAgICAgICAgICBzaG93QWxsTGV2ZWxzID0gVFJVRSkKCmRhdGEgPC0gZGF0YSAlPiUKICAgICAgICBmaWx0ZXIoUlhfU1VNTV9TVVJHX09USF9SRUdESVMgPT0gIjAiKSAKYGBgCgoKUmFjZSB3YXMgZ3JvdXBlZCBhcyB3aGl0ZSwgYmxhY2ssIGFzaWFuLCBvdGhlci91bmtub3duClN0YWdlIHdhcyBncm91cGVkIGludG8gMCwgSSwgSUksIElJSSwgSVYsIE5BX1Vua25vd24sIHN0YWdlIDAgd2FzIHJlbW92ZWQKV2hldGhlciBzdXJnZXJ5IHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19TVVJHRVJZYCB2YXJpYWJsZS4gVGhlIGBTVVJHRVJZX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCldoZXRoZXIgcmFkaWF0aW9uIHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19SQURJQVRJT05gIHZhcmlhYmxlLiBUaGUgYFJBRElBVElPTl9ZTmAgdmFyaWFibGUgd2FzIGNsYXNzaWZpZWQgYXMgJ1llcycsICdObycsIG9yICdVbmtub3duJy4KCgoKI1RhYmxlIG9mIHZhcmlhYmxlcyBmb3IgYWxsIGNhc2VzOgoKCgpgYGB7cn0KcF90YWJsZShkYXRhLAogICAgICAgIHZhcnMgPSBjKCJGQUNJTElUWV9UWVBFX0YiLCAiRkFDSUxJVFlfTE9DQVRJT05fRiIsICJGQUNJTElUWV9HRU9HUkFQSFkiLCAgIkFHRSIsICJBR0VfRiIsICJBR0VfNDAiLAogICAgICAgICAgICAgICAgICJTRVhfRiIsICJSQUNFX0YiLCAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAKICAgICAgICAgICAgICAgICAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLAogICAgICAgICAgICAgICAgICJTSVRFX1RFWFQiLCAiQkVIQVZJT1IiLCAiR1JBREVfRiIsCiAgICAgICAgICAgICAgICAgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsICJNQVJHSU5TIiwgIk1BUkdJTlNfWU4iLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsCiAgICAgICAgICAgICAgICAgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAKICAgICAgICAgICAgICAgICAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAiU1VSR19SQURfU0VRIiwKICAgICAgICAgICAgICAgICAiU1VSR19SQURfU0VRX0MiLCAiU1VSR0VSWV9ZTiIsICJSQURJQVRJT05fWU4iLCAiQ0hFTU9fWU4iLCAibWV0c19hdF9keCIsCiAgICAgICAgICAgICAgICAgIk1FRElDQUlEX0VYUE5fQ09ERSIsICJFWFBOX0dST1VQIikpCmBgYAoKYGBge3J9CgpwcmVFeHBNZWRpY2FyZSAgPC0gbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKcG9zdEV4cE1lZGljYXJlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIiAmIElOU1VSQU5DRV9GID09ICJNZWRpY2FyZSIpKQoKIyBwID0gMC4yNSB3aGVuIGNvbXBhcmluZyBjaGFuZ2UgaW4gcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRoIE1lZGljYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgQUNBIGV4cGFuc2lvbgpwcm9wLnRlc3QoYyhwcmVFeHBNZWRpY2FyZSwgcG9zdEV4cE1lZGljYXJlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnByZUV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKcG9zdEV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihJTlNVUkFOQ0VfRiA9PSAiTm9uZSIpKQoKIyBTaWduaWZpY2FudCBkZWNyZWFzZSBpbiB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHBhdGllbnRzIHdpdGhvdXQgaW5zdXJhbmNlIGFmdGVyIEFDQSBleHBhbnNpb24gCnByb3AudGVzdChjKHByZUV4cE5vSW5zdXJhbmNlLCBwb3N0RXhwTm9JbnN1cmFuY2UpLCAKICAgICAgICAgIGMobnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIpKSwgbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUG9zdC1FeHBhbnNpb24iKSkpKQoKcF90YWJsZShub19FeGNsdWRlcywgc3RyYXRhID0gIkVYUE5fR1JPVVAiLCB2YXJzID0gIkRYX1JYX1NUQVJURURfREFZUyIpCgpkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShJbnN1cmVkID0gSU5TVVJBTkNFX0YgIT0gIlVua25vd24iKQoKYGBgCgoKCgojS2FwbGFuIE1laWVyIEFuYWx5c2lzCgoKIyNBbGwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFsbCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IFR5cGUKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfVFlQRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgTG9jYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBHZW9ncmFwaHkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0dFT0dSQVBIWSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFXzQwIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjR2VuZGVyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTRVhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JBQ0VfRgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFDRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSGlzcGFuaWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1BBTklDIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSW5zdXJhbmNlIFN0YXR1cwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSU5TVVJBTkNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNPdmVyYWxsIFN1cnZpdmFsIHByZS9wb3N0LUFDQSBleHBhbnNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVYUE5fR1JPVVAiLCBkYXRhX2ltcCA9IG5vX0V4Y2x1ZGVzKQpgYGAKCgo8IS0tICMjSW5jb21lIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gY2xhc3MoZGF0YSRJTkNPTUVfRikgLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNFZHVjYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVEVUNBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjVXJiYW4vUnVyYWwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlVfUl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xhc3MgKHRyZWF0bWVudCBhdCBwZXJmb3JtaW5nIGZhY2lsaXR5KQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0xBU1NfT0ZfQ0FTRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjWWVhcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiWUVBUl9PRl9ESUFHTk9TSVMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQcmltYXJ5IFNpdGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNJVEVfVEVYVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNIaXN0b2xvZ3kKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNUT0xPR1lfRl9MSU0iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0JlaGF2aW9yIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNHcmFkZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkdSQURFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBUIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgTiBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjQ2xpbmljYWwgTSBTdGFnZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTSIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNDbGluaWNhbCBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFQgU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE4gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE0gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX00iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOUyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMgWWVzL05vCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjMzAgRGF5IFJlYWRtaXNzaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBUeXBlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSWF9TVU1NX1JBRElBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI0x5bXBob3Zhc2N1bGFyIEludmFzaW9uCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0VuZG9zY29waWMvUm9ib3RpYwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBSYWRpYXRpb24gU2VxdWVuY2UgCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTVVJHX1JBRF9TRVEiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNTdXJnZXJ5IFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR0VSWV9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBRElBVElPTl9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NoZW1vIFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0hFTU9fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjVHJlYXRtZW50IFllcy9ObwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUeF9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01ldGFzdGFzZXMgYXQgRHgKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAibWV0c19hdF9keF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNUdW1vciBTaXplIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJUX1NJWkUiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiNUdW1vciBzcGVjaWZpYyBWYXJpYWJsZXMKCgojIyNOb2RlIFNpemUKCgojQ294IFByb3BvcnRpb25hbCBIYXphcmQgUmF0aW8KCiMjTW9kZWwgIzEKCiMjI0Z1bGwgYW5hbHlzaXMKCmBgYHtyfQptb2RlbF9vbmUgPC0gY294cGgoU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgfiBTVVJHX1JBRF9TRVEgKyBJTlNVUkFOQ0VfRiArIEFHRSArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YsCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhKQptb2RlbF9vbmUgJT4lIHN1bW1hcnkoKQoKCmBgYAoKIyMjU3VtbWFyeSBvZiBNb2RlbAoKYGBge3J9Cm1vZGVsX29uZSAlPiUKICAgICAgICB0aWR5KC4sIGV4cG9uZW50aWF0ZSA9IFRSVUUpICU+JQogICAgICAgIHNlbGVjdCh0ZXJtLCBlc3RpbWF0ZSwgY29uZi5sb3csIGNvbmYuaGlnaCwgcC52YWx1ZSkgJT4lCiAgICAgICAgcmVuYW1lKFZhcmlhYmxlID0gdGVybSwKICAgICAgICAgICAgICAgSGF6YXJkX1JhdGlvID0gZXN0aW1hdGUpICU+JQogICAgICAgIHRibF9kZiAlPiUKICAgICAgICBwcmludChuID0gbnJvdyguKSkKCmBgYAoKIyBQcmVkaWN0aW9uIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzCgojIyBTdXJnZXJ5CmBgYHtyfQoKbm9fVWtucyA8LSBkYXRhICU+JQogIGZpbHRlcihTVVJHRVJZX1lOICE9ICJVa24iKSAlPiUgCiAgZHJvcGxldmVscygpICU+JSAKICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGFzLmxvZ2ljYWwoU1VSR0VSWV9ZTikpCgpmaXRfc3VyZyA8LSBnbG0oU1VSR19URiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19Va25zKQoKc3VtbWFyeShmaXRfc3VyZykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9zdXJnKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBNZXRhc3Rhc2lzIGF0IFRpbWUgb2YgRGlhZ25vc2lzCmBgYHtyfQojIGxpbWl0IHRvIHRob3NlIGNhc2VzIHdoZXJlIGRhdGEgYWJvdXQgZXhwYW5zaW9uIHN0YXR1cyBpcyBhdmFpbGFibGUgKD4gQWdlIDM5LCBub24tYW1iaWd1b3VzIHN0YXR1cyBzdGF0ZXMpCgpmaXRfbWV0cyA8LSBnbG0obWV0c19hdF9keF9GIH4gQUdFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GICsgRVhQTl9HUk9VUCwKICAgZGF0YSA9IG5vX0V4Y2x1ZGVzKQoKc3VtbWFyeShmaXRfbWV0cykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9tZXRzKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBg